You can replicate structs of arrays of structs
USTRUCT()
struct FStruct1
{
GENERATED_USTRUCT_BODY();
FStruct1() {}
}
USTRUCT()
struct FStruct2
{
GENERATED_USTRUCT_BODY();
FStruct2() {}
UPROPERTY()
TArray<FStruct1> Array;
}
///
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "SomeCat", Replicated)
public: TArray<FStruct2> Array2;