You are correct for the rise in memory when the TArray<FMyStruct> is marked with UPROPERTY(). It causes the rise in memory because of the undo cache being saved. Saving the map then reduces the memory as the undo cache is cleared. But the existing memory used by the actor is then also never freed, only the undo cache is freed.
The UPROPERTY also seems to slow the editor down.
If I do not use the UPROPERTY macro then the memory rises when dragging in the actor but is then never freed again when the actor is deleted. The MyStructArray says it is empty when being told to Empty() in the actors destructor. But the RAM/memory is still in use and is still never freed no matter the length of time since deleting the actor.
My question would be: Why is the actor quite clearly using RAM but yet the MyStructArray reports itself as being empty when the actors destructor is run?