What is the correct way to copy an existing component to a new actor?

Hi, i’m having some issue with attached children not getting removed when creating a new component from a template.
I want to copy an existing component to a new actor I’m doing this with NewObject and a template.
This works fine when the component doesn’t have a child attached to it.

Actor - ComponentToCopy

void AItemToInspect::CopyComponents(USceneComponent* ComponentToCopy)
{
	FName Name = FName(*(ComponentToCopy->GetName() + FString("_Insepct")));
	USceneComponent* NewComponent = NewObject<USceneComponent>(this, ComponentToCopy->GetClass(), Name, EObjectFlags::RF_NoFlags, ComponentToCopy);
	NewComponent->RegisterComponent();
	NewComponent->Mobility = EComponentMobility::Movable;
	NewComponent->AttachToComponent(RootComponent);
}

But when the component has a child attached to itself:

Actor - ComponentToCopy - ChildComponent.

The new component thinks that the child component is attached to it because AttachChildren variable is just copied over, so there are now two components that believe that the child component is attached to them.
Then when the New Component is destroyed the following message pops up:

LogSceneComponent: Error: Component ‘StaticMeshComponent /Game/Maps/UEDPIE_0_Examples.Examples:PersistentLevel.Bp_RotatbleToInspect_C_0.StaticMeshComponent0_Insepct’ has ‘StaticMeshComponent /Game/Maps/UEDPIE_0_Examples.Examples:PersistentLevel.SM_Barrel5.StaticMesh’ in its AttachChildren array, however, ‘StaticMeshComponent /Game/Maps/UEDPIE_0_Examples.Exam
ples:PersistentLevel.SM_Barrel5.StaticMesh’ believes it is attached to ‘StaticMeshComponent /Game/Maps/UEDPIE_0_Examples.Examples:PersistentLevel.SM_Barrel5.StaticMeshComponent0’

So my questions are:

What is the correct way to copy an existing component to a new actor?

Is there a way to clear the AttachChildren array?

Is this a bug?

Thanks