Custom properties created by factories empty on editor reload

I have a custom asset and factory for protobuf files I need to use for my game coming from an externally created source which I have to work with.
I set up a factory and when I drag a serialised protobuf file into the editor the factory correctly parses and creates the asset I can then use and everything seems to work great.
However after exiting and starting the editor back up the protobuf objects earlier created are now empty.

I initially thought it was related to this post and I did some digging and it appears to be a different issue.
I can’t even make my properties UPROPERTY’s because the protobuf objects don’t inherit from UObject.
I created a new example project (factory and asset classes attached) using std::string (and a made up file type of .bork) in place of my actual protobuf objects to see if this is the case and it seems it does.

In the case of this std::string example solving it is trivial by just using FString instead but rebuilding the entire structure of the protobuf objects is a much larger undertaking.
So I am wondering if there is a secondary serialisation/deserialisation step ue4 calls that I can use to rebuild by protobuf objects?
Or am I totally misunderstanding the issue?

tldr; how can I serialise and deserialise custom types in my assets?