With Siemens its very tricky, as I'm sure you know. Hence your post.
I'll take a stab at it - I'll try.
I go to a customer site to work on a program, I am not the last one. First I compare blocks and determine what is not equal.
FC blocks
These are the easiest. Upload. When you open the block the symbol info is invalid, say OK. Now turn the glasses on to go online. If you are online, go offline and save the block and then download. Problem fixed.
DB
The hardest by far. You may need to work with an individual block for some period of time. Think days and you will prepare yourself. If your offline DB has symbols and your online DB is not equal here is what I would do. First archive your project. Now copy your offline DB and paste to make a copy. Now upload the DB. If you open it and have no symbol info you will have to use your copy to create a new DB based on what you find when you upload. There is no simple explanation - you have to figure it out. Once you get a new DB created "that you think will replace the old one", download. Of course you have backups to go back.