Where should on add new systems like a procedural generation system or other single instance shared systems

In Unreal Engine’s code a system like yours could be a Struct in a Module. Look for FMeshUtilities code in MeshUtilities.cpp

Lets say I have my own system for creating or generating meshs or loading them from an fbx. Essentially the system will return an instanses of a UMeshComponent. This system would then be called from different places based on need.
GenerateTowerMesh(settings) or GenerateStairwayMesh(settings), so first of all no two instances should be created so no memory will be wasted.

But where in the engine should something like that go.

Should it be implemented as a plugin or some kind of singleton, should the GWorld proxy class be imitated, is there a different place to add it properly?

So a plugin then is what you are recommending?

If you want to reuse it on an other project, yes. Else a struct should be enough.