Saving Problem With UObjects

I have an array of UMyClass Object pointers but they can also contain UMyChild Object pointers.
My Question is how to save these and restore them so they are again Classes or Childs of that Class.

i am now doing this:

	FString SaveFile = "MyLocation"
	FBufferArchive ByteArray;
	for (auto Class : ClassData)
	{
		Class->Serialize(ByteArray);
	}

	if (FFileHelper::SaveArrayToFile(ByteArray, SaveFile.GetCharArray().GetData()))
	{ 	
		ByteArray.FlushCache();
		ByteArray.Empty();

		UE_LOG(LogTemp, Warning, TEXT("Save Success!"));
		return true;
	}

	ByteArray.FlushCache();
	ByteArray.Empty();

	UE_LOG(LogTemp, Warning, TEXT("Save Failed!"));
	return false;

It can always save, but the problem is that the data is just None None None …