C++ Actor Loses Component References when Duplicated/Alt+Dragged

I have a rather annoying issue. I am following this tutorial series: Unreal Engine C++ Tutorial #3 - Making a game! - YouTube and at 3:10 on the video, he copies it. I have this issue where whenever I try to alt+drag that rock or duplicate it, the root component acts normally, but the static mesh cannot be moved, and the static mesh on the duplicated actor spawns at the center of the level. I have noticed as well that the actor loses its references to the root and mesh, so they both display “None”. Here is my actor’s .h:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "GameFramework/Actor.h"
#include "Interact_Button.generated.h"

UCLASS()
class SHOOTERCPP_API AInteract_Button : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AInteract_Button();

	// Called when the game starts or when spawned
	virtual void BeginPlay() override;
	
	// Called every frame
	virtual void Tick( float DeltaSeconds ) override;

	UPROPERTY(EditAnywhere)
		UShapeComponent* Root;
	
	UPROPERTY(EditAnywhere)
		UStaticMeshComponent* Button;

	UPROPERTY(EditAnywhere)
		float SpeedScale;

	float RunningTime;

};

And here is my actor’s .cpp:

// Fill out your copyright notice in the Description page of Project Settings.

#include "ShooterCPP.h"
#include "Interact_Button.h"


// Sets default values
AInteract_Button::AInteract_Button()
{
 	// 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;

	Root = CreateDefaultSubobject<UBoxComponent>(TEXT("This is the root component for the button."));

	RootComponent = Root;

	Button = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("This is the button mesh."));

	Button->AttachTo(RootComponent);

	SpeedScale = 100.0f;

}

// Called when the game starts or when spawned
void AInteract_Button::BeginPlay()
{
	Super::BeginPlay();
	
}

// Called every frame
void AInteract_Button::Tick( float DeltaTime )
{
	Super::Tick( DeltaTime );

	FVector NextLocation = GetActorLocation();
	float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));

	NextLocation.Y += DeltaHeight * SpeedScale;
	RunningTime += DeltaTime;
	SetActorLocation(NextLocation);
}

Also the little orange circle is not there in the world outliner on the duplicate, but there is an orange circle on the original. I never knew what that orange circle means.