My classes are being deleted by the engine after a set amount of time

Any reference to a UObject must be protected/marked up by a UPROPERTY tag to prevent garbage collection from tagging it for deletion. If you don’t do this, you must manually alert the garbage collection code to the connection to your class and manage its lifetime on your own.

See my response here. I also have a more detailed response here, but you’ll have to go a little bit through the comments of my answer to where I talked about AddReferencedObjects.