Why does server transfer randomize id, why not simply keep it?
If there is tecnical restrictions requiring ids to be dependent on the server, just make a function which use a hash function which use the server you merge to.
Currently it is actually exploitable, by allowing splitting of ids and yet mess you up if you transfer with friends