Repication of UObjects?

I guess the best option to be able to port your game to be multiplayer ready is to use the GameState for game related data which will be replicated to all connections while using the PlayerState for the player related data (health, appearance, etc).

The GameState instance is persistent while you do not change the GameMode, this means when traveling the data will be there. The PlayerState is a different beast. What the engine does is to build a new PlayerState and let you persist values when it needs to. For example if a player disconnects it will save the PlayerState into an inactive array so you can recover the persistent data if the same player connects again. To persist the PlayerState data you should override the following methods: OverrideWith, SeamlessTravelTo and CopyProperties. This is also supported in BP from version 4.13.

I would really not base all your networking on subobjects, the more objects you have that need replication the slower all network tasks will be. GameState and PlayerState are generally enough to handle the main load of state interaction.