You could use a singleton for holding the data across scenes, see Singletons (AutoLoad) from the documentation.
As for how to store the data, it really depends on what you want to store and how you want to store it.
Personally, I would suggest making a class for holding, retrieving, and storing the player data. Then you could make an instance of that class in your singleton and get the data from any scene. I think your idea of making a player class would be a fine way to store the data, and should make it easy enough to change data structures if you later if you want/need to.
On an aside: If you store your data in a dictionary (in a class or otherwise), you can use Godot's built in JSON functions to easily save/load data from JSON files.
Saving games -- Godot documentation
Of course, you can always start with one structure and change how you structure the data later. I find when I'm starting a new project, I choose the simplest solution, then refactor the code to make it pretty, understandable, and (slightly more) future proof.
Best of luck with your game :)