Component rotation/transform with quaternion issue (C++)

I tried to modify a solution posted here that transformed an AActor class to fix gimbal issues, and convert it work for a sub-component class.

The code is in a c++ class extended from Pawn, which parents the main blueprint.

.cpp

RootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("RootComponent"));
RootComponent->SetMobility(EComponentMobility::Movable);

Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh"));
Mesh->AttachTo(RootComponent);
Mesh->SetSimulatePhysics(true);

.h

// Original code by 
FORCEINLINE void AddToRot(USkeletalMeshComponent* Mesh, const FRotator& AddRot) const
{
if (!Mesh) return;

FTransform TheTransform = Mesh->GetRelativeTransform();
TheTransform.ConcatenateRotation(AddRot.Quaternion());
TheTransform.NormalizeRotation();
Mesh->SetRelativeTransform(TheTransform);
}

UPROPERTY(EditAnywhere)
USkeletalMeshComponent* Mesh;

Component hierarchy:

82563-bpcomponents.png

Input is added to the rotation of the camera’s SpringArm, which sets the Mesh component’s rotation:

Play-in-editor sends errors that ‘Mobility’ is not enable for RootComponent, stopping it in place, and the Mesh component spawns falling far below, not attaching to the root.

Had difficulties choosing the right “UClass”, USkeletalMeshComponent seems to be almost the only choice for allowing Transform functions to be called, unsure how to proceed.

Any advice is greatly appreciated.