Make cube spiral and rotate with C++ through a SceneComponent

So the good news is I got it to spiral, and I got the cube to rotate.
However, if I now rotate the actor “BP_TestCube” during gameplay, the blue cube will take on a really weird orbit.

Does anybody have an idea of how to fix it?

New header file:

protected:
	UPROPERTY(EditAnywhere)
	float Speed = 25.0f;

	UPROPERTY(EditAnywhere)
	float OrbitSpeed = 100.0f;

	UPROPERTY(EditAnywhere)
	float RotationSpeed = 200.0f;

	float Distance;
	
    FVector StartPos;
	FVector CurPosition;
	
	FRotator OrbitRotation;
	FRotator ObjectRotation;

New C Plus Plus file:

void UMySceneComponent::BeginPlay()
{
	Super::BeginPlay();
	StartPos = this->GetRelativeLocation();
	OrbitRotation = this->GetRelativeRotation();
	ObjectRotation = this->GetRelativeRotation();
}

void UMySceneComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
	Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

	OrbitRotation.Yaw += DeltaTime * OrbitSpeed;
	SetRelativeRotation(OrbitRotation);

	Distance += DeltaTime * Speed;
	CurPosition = StartPos;
	CurPosition += this->GetForwardVector() * Distance;
	SetRelativeLocation(CurPosition);

	ObjectRotation.Yaw += DeltaTime * RotationSpeed;
	SetRelativeRotation(ObjectRotation);
}