I am not going to read whole article just to answer this question, but I can guess what is going on
your persistent node is dependent on reference to non-persistent node. You remove one scene, so the one that stays no longer can find a reference to it. There are few options to solve this issue :
Release hard dependencies, keeping all shared data related to navigation in Autoload/high scope script
Do not remove a scene responsible for navigation, reset its contents manually
Make no node persistent, queue free both a scene and a player, so the new instance of player will become dependent on a new instance of a level