Can I override a constructor with arguments, or alter the constructor in a *.h file?

UObject constructors cannot take any custom/additional arguments (apart from the default ObjectInitializer).

The way to approach this would be to add an “Init” function that you call after the object has been created. Loading and creating other objects (that are not default sub-objects) in constructors is generally not a good idea.