How do I replicate an inventory?

Hey i do not think this approach will work.
As you say UObject do not replicate, so if the Object is not replicated the reference you potential store in your inventory array.
Will not be valid client side after you add it server side, and it will be null.

In order for the UObject to replicate it needs a Actor as the outer parent.
So you are better of defining a base item class derived from AActor::.

An item is surely something that is in the world at one point so making it a UObject makes little sense to me.