Can't save due to "Graph is linked to external private object"

Using CreateObject and assigning the resulting UObject to a variable in a Blueprint is not correct. The Generated UObject will be placed in the transient package while the instanced Blueprint will be in the Map’s package. The UObject reference cannot be saved because of the dependency and this is entirely expected.

If you want to create an object, you should have it’s outer be the Level. This will ensure that the instance of the Blueprint and the UObject exist in the same package when saving the map.