UObjectクラスのレプリケーションについて

使用されているエンジンバージョンが UE5.1 以降でしたら、
AActor::AddReplicatedSubObject を利用する事で可能です。

管理オブジェクトである DiceManager は Actor を Outer として生成、
以降のオブジェクトは DiceManager の Outer(Actor)を取得し、
AddReplicatedSubObject で登録する流れです。

ATest::ATest()
{
	bReplicateUsingRegisteredSubObjectList = true;
}

void ATest::BeginPlay()
{
	if (HasAuthority())
	{
		DiceManager = NewObject<UDiceManager>(this);
		AddReplicatedSubObject(DiceManager);
		DiceManager->Init();
	}
}

void UDiceManager::Init()
{
	AActor* Outer = Cast<AActor>(GetOuter());
	if (IsValid(Outer) && Outer->HasAuthority())
	{
		Dice = NewObject<UDice>(Outer);
		Outer->AddReplicatedSubObject(Dice);
	}
}

https://docs.unrealengine.com/5.1/ja/replicated-subobjects-in-unreal-engine/#登録済みサブオブジェクトリストの概要
詳しくはこちらをご参照ください。

また、利用できない場合ですが、
ゲーム進行に関わる管理は AGameState で管理するのが一般的かと思います。
別案として DiceManager をアクター化するのも一つの手かと思います。