Yeah, the ReplicateSubobject for a single object or some other replication-related function may perform some checks that prevents this with a UActorComponent. You could try moving the functionality from your UInventoryComponent into a regular UObject derived class and then just have nothing more than an instance of this class in the UInventoryComponent instead. Your UBackpackItem can also use the UObject derived class instead of the UInventoryComponent.