Should I clear arrays of pointers before saving struct to GameSave?

I actually need to test this properly. However, I have a few questions as it seems my understanding is obviously lacking. (I am starting to think I should have done everything in C++!).

What is considereed automatic? The way I have implemented my state holder UObjects is that they return the structs that contain the data through a function that is blueprintcallable. The GameSave, currently in blueprint, has a setter function for all the structs inside. So, when I want to save I just get the structs from all the UObjects and pass it to the setter function in the GameSave and then write it to disk (blueprint also).

So, my question is:
Since I am setting the GameSave structs variables in blueprint, when I set them the values that not marked UPROPERTY() do not get copied? I thought it just copies all the memory, even what is not “visible”.

Also, what about if you have a USTRUCT(BlueprintType) that contains other USTRUCT(BlueprintType) that contain fields that have not been marked as UPROPERTIES. If I set the “parent” struct in my blueprint function. Will it not copy the non UPROPERTIES?

The reason why I am not marking them UPROPERTIES is because I only manipulate them in C++ so I didn’t want them to clutter. I don’t know if that makes sense now…

Thanks a lot,
M