I don’t think you should create default subobjects like that outside the constructor, in fact I don’t think it’s even possible, so I wouldn’t move it to on custruction. Just make sure you attach the fpsmesh component to something, otherwise things can get weird, so just do FPSMesh->SetupAttachment(RootComponent) in addition to everything else that you do
The reparenting usually fixes any weird serialization that might have happened with your components, especially in your case where the FPSMesh skeletal component was not attached to anything, but you will lose any potential modified properties in some of your components