This is because UObject is not a Blueprintable type. If you will look into the source you will notice that it isn’t even an UCLASS or UPROPERTY. When you are using pointers to UObjects you are pointing to the existing, instanced objects.
The thing you should try to do is to have a TSubClassOf<UObject> and then create a new object based on the given subclass.
There is also an “instanced” keyword you can put into a UPROPERTY, which will instance an object when created, but I’m not sure if this will work for this case.