What is the best way to save Hierarchical Instanced Static Mesh Component?

Currently I just serialize and write a TArray with the FTransform of each instance to a .save file, which I can load in and feed to my mesh component by using AddInstances(...) .

Does anyone else know a better/faster way to save&load Hierarchical Instanced Static Mesh Component?

Thanks,

Also this is my current save&load code:

void ASpawnerParent::SaveInstances()
{
	MakeSaveDirectory();

	FBufferArchive ToFile;

	ToFile << InstanceTransforms;
	
	const FString& FullFilePath = SaveDirString + "/" + "PlantSpawner" +".save";
	
	if(!FFileHelper::SaveArrayToFile(ToFile, * FullFilePath))
	{
		UE_LOG(LogTemp, Warning, TEXT("Failed to Save") );
		return;
	}
	UE_LOG(LogTemp, Log, TEXT("Save Succesful") );

}

void ASpawnerParent::LoadInstances()
{
	TArray<uint8> TheBinaryArray;
		
	const FString& FullFilePath = SaveDirString + "/" + "PlantSpawner" +".save";
	if(!FFileHelper::LoadFileToArray(TheBinaryArray, *FullFilePath))
	{
		UE_LOG(LogTemp, Warning, TEXT("Failed to Load") );
		return;
	}
	FMemoryReader FromBinary = FMemoryReader(TheBinaryArray, true); 
	FromBinary.Seek(0);

	FromBinary << InstanceTransforms;
	
	UE_LOG(LogTemp, Log, TEXT("Load Succesful") );
}

In my opinion better way is to use Instanced Foliage Actor.
Iterate through all of your Hierarchical Instanced Static Mesh Components, for each create Instanced Foliage Actor, set static mesh, then loop from instances count and add each transform.