Ok. I’d try this next then.
In your .h file, define a USceneComponent reference:
UPROPERTY(EditAnywhere)
USceneComponent* USC_HeadSocket;
Attach that to your mesh socket in the costructor (assuming your socket as defined in your skeleton is called “headSocket”):
USC_HeadSocket = CreateDefaultSubobject<USceneComponent>(TEXT("myHeadSocket"));
USC_HeadSocket->SetupAttachment(GetMesh(), TEXT("headSocket"));
Then in your PostInitializeComponents (or any other place that’s not your constructor) attach the hair mesh to the scene component:
Hair->AttachToComponent(USC_HeadSocket, FAttachmentTransformRules::SnapToTargetIncludingScale);
If even this does not work, then you can probably switch approach defining your character thorugh a MasterPoseComponent instead (Working with Modular Characters | Unreal Engine Documentation)