Which version of Tableau Server are you running?
If we can use just one example of this issue, can you try downloading the workbook from Server and opening it in Desktop? Once in Desktop it should ask you to "find" the missing extract. This will let you either replace the data source with the new extract, or change to a live connection (which you can then re-extract in the workbook). Once the connection is set properly in Desktop you should be able to publish to Server without issue.
Does that workflow work for a test example? This will help narrow down what could be going on.