UObject not replicating after some of it's properties change

I think it’s likely that it’s working but your expectations are wrong. When you say it’s not working, I assume you mean that when you change a property inside the object, the OnRep function for the array property is not called? That’s just how array replication works I think, certainly how it used to work. It’s possible they changed it to trigger for value changes in arrays, but even if so it can’t really work like that for pointed-to UObjects due to the extra level of indirection.

When you have a replicating subobject, the instance itself is replicated as part of its owner. This is distinct from properties holding pointers to an object being replicated, which just means that the client gets updates to the pointer if the server makes it point to another object. To respond to replication of changed properties inside a subobject, you’ll need to implement an OnRep for those properties within the subobject class, and perhaps fire a delegate or something so that the class responsible for those objects can process it.