I had simular problem and to fix it I have to change the construction of my object instance like this:
UReplica* UDialog::CreateReplica()
{
UReplica* r = NewObject(this);//instead of UReplica* r = NewObject();
m_replicas.Add(r);
return r;
}
It object doesn’t know his parent then TArray serializer use UObject serialize method instead of your class method.