It's probably not as simple as retrieving everything related to userOld and setting the required information to userNew?
Phew, not an easy task Mike. I would start by mapping out to which object the account (and inherited objects of account) are connected to other objects. Then create a custom microflow that handles each of those objects (do a retrieve and change the reference to the other account). One of the problems you are going to run into is the owner of an object, because that one I think can not be changed. So either create a new object (with the community commons executeMicroflowAsUser so the object owner is set to the right owner) or accept that the owner is still the other account.
Hope this helps some and good luck with the work.