All Instanced components outside of c++ constructor of an Actor are reset to null when compile a blueprint that inherit the c++ Actor

You either need to update the blueprint data itself (the UBlueprint, not the generated class or the CDO), or store enough data into default properties to be able to reconstruct everything in the construction script.

For the first one, look into FKismetEditorUtilities::AddComponentsToBlueprint.
The Blueprint can be reached via Cast<UBlueprint>(Class->ClassGeneratedBy).