4.21.1 USphereComponent Not Nesting

I’m using 4.21.1 and for whatever reason, the blueprint is re-ordering the sub-components out of order at run-time, not attaching to the correct parent component. The two screenshots display the differences. The blueprint is based on a custom C++ class that inherits from AActor. It was working properly when the Wheel and Axle were UStaticMeshComponent, however now with USphereComponent the blueprint is no longer rendering correctly. As you can see the Wheel at runtime is being nested under MassAxleConstraint which is the root component when it should actually be nested underneath the axle. I attempted doing the same thing with UStaticMeshComponent and it worked fine, for some reason the USphereComponent is causing problems.

Another symptom I am seeing is that at runtime the Wheel Component is staying at 0,0,0 (location), image 3.

In the C++ I had to use Register Component as follows, when I did not use RegisterComponent none of the components worked correctly and physics did not work.:

// Sets default values
ASprungWheel::ASprungWheel()
{
// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;

MassAxleConstraint = CreateDefaultSubobject<UPhysicsConstraintComponent>(FName("MassAxleConstraint"));
SetRootComponent(MassAxleConstraint);


Axle = CreateDefaultSubobject<USphereComponent>(FName("Axle"));
Axle->SetupAttachment(MassAxleConstraint);
Axle->RegisterComponent();


AxleWheelConstraint = CreateDefaultSubobject<UPhysicsConstraintComponent>(FName("AxleWheelConstraint"));
AxleWheelConstraint->SetupAttachment(Axle);


Wheel = CreateDefaultSubobject<USphereComponent>(FName("Wheel"));
Wheel->SetupAttachment(MassAxleConstraint);

Wheel->RegisterComponent();
}

I then in begin play I call the following:

void ASprungWheel::SetupConstraint()
{
if(GetAttachParentActor())
{
    UPrimitiveComponent* BodyRoot = Cast<UPrimitiveComponent>(GetAttachParentActor()->GetRootComponent());
    if(!BodyRoot) { return; }
    // First Constraint Setup BodyRoot -> Axle
    MassAxleConstraint->SetConstrainedComponents(BodyRoot, NAME_None, Axle, NAME_None);
    
    // Second Constraint Setup Axle -> Wheel
    AxleWheelConstraint->SetConstrainedComponents(Axle, NAME_None,  Wheel, NAME_None);

}
}

I got the same problem and i lost 3 days Trying to fix it without success. it got same problem with ALL the kind of bounding box… sphere box… capsule… and of course it work with mesh