I hate Application.persistentDataPath
According to the description, this exercise should take 30 min. It took me something around 4 days to make it work, reviewing the tutorials again and again. Either I suck at programming, or the 30 min expectation was way too optimistic...
Debug.Log(Application.persistentDataPath); <- this is a live saver.
Don´t forget to use a regular slash before the file name, or it will not find the file at all (both for loading and saving).
Use your empty gameobject (the one that will remain in DontDestroyOnLoad) only for STORAGE purposes. Do not put any effing script on it. Think of it as a container.
All your menu scripts must remain in your Canvas object. If you fail to do this (like I did), your buttons will work only on the first run, but when you come back to the menu the buttons do not find the scripts anymore (lesson learned).
Have as much fun and frustration as I did, and remind that this is a learning path!!!