What we need is a reproducable case of this. Ideally a simple set of instructions which will cause the problem.
There are four different sync checks, which are done in successive turns, so the cause of the out of sync problem might have been something as much as 4 turns previously, but my primary candidate, a random that is not in sync, is checked every turn.
Sit down with one friend, make as small and simple a map as possible, and start keeping track of what you do. Do autosaves work in multiplayer? If so, set it up to autosave every turn for 30 turns or more.
Once you get a sync error, go make a copy of your autosave folder, so you do not lose any of the saves.
Now go back one turn previous autosave, try that save, try to do exactly the same thing. Click the same spots, move the units in the same order, everything. Do you still get the sync error?
If so, try doing something totally different, do you get the sync error?
If so, go back one more turn, and repeat.
Try to determine what action you take that causes the sync error, and what action if you do not take, the sync error does not occur.
It could be something like (perhaps repeating one of these):
(1) turning the build governor on or off
(2) turning the citizen governor on or off
(3) building a unit
(4) putting a unit on automation (explorers, workers, etc)
(5) clicking examine city after completing a build, rather than picking one of the choices, forcing it to give you another suggestion
(6) clicking big picture rather than choosing a tech choice after finishing a previous one, forcing it to give you another tech suggestion
(7) moving a unit somewhere
(8) canceling automation of a unit, perhaps before the unit has moved yet
(9) something else entirely
The more detail you can give, the easier it will be to track this down.
Can you get it to happen with zero AI players? That would make tracking it down even easier.
Whatever is causing it, it has to do somehow with something the human player is doing, some interaction with something one person does, that another does not do.
Every time we generate a random number, we have to do it in a different way if it is being done on every machine on the network, or just on your local machine. I suspect the bug is some case where we are using the wrong function, thus using the network random when we should not, getting that machine out of sync with the others. That is why I suggested those examples above, of course, I poured through the code and could not find any cases in that code that seemed to be wrong, so it might be somewhere else that I do not expect.
-Iustus