My recent findings: Switching the two properties to one TMap<FName, UFXSystemAsset*> works wonderfully. So in this exact instance we’re fine.
Still, I may not want to mark this as resolved, simply because of the general question of supporting backwards compatibility with UPROPERTY. Like, let’s say I wanted my classes to use TObjectPtr<> in UE5 and raw pointers in UE4 (ESPECIALLY if TObjectPtr<> is going to become a requirement in the future). That’s a perfect example of where this would be just all too useful.
I do wonder, though, perhaps I’d be able to use two headers for one class, one for UE4 and one for UE5, then just share the same source file and try to wrap those in preprocessors? I have no clue what else I would do. That, or maybe a custom macro would help. One to automatically swap the syntax based on the engine version I’m building against. I may try that out and see what happens, but for now, I’ll mark this as resolved, since I did technically find a solution.