When player rejoins and any function using random number generation is called during deserialization, states of players will not match because rng number of aimanagers will be different. That also causes problem with every other generation of random number and as that will not be the same as the host generates, ai will enter different gamestate.
Reverting random pickup of phase technology in ai.gamestate (rP20750) because that init function is called on rejoin and gamestate is not serialised from aimanager. Most likely it would be better for the future if ai could pick that phase technology at runtime so it would be possibly different pick for multiple ais.