Okay, so. I have it working.
I did somewhat follow as you said and used a class reference to set the ship that should spawn in the new world.
When I player buys a new ship, I update and set what the new ‘CurrentShip’ class should be. On loading the new level, it checks which ship is set as the ‘CurrentShip’ and spawns it to possess it in the new level. Working great.
If the player buys a new ship, it will know what one they bought, and spawn the correct ship accordingly. I didnt use an array, however, it is likely that I may update the system to do this in the future.
Thanks.