I am using a global array to save game progress, with y = 0 to save the score on each level when completed (the sum gives the total score) and y = 1+ to save any other data that might be of relevance. The dictionary object is very good as well but requires a bit more thought (than I'm prepared / able to give) when setting up your logic (I guess - not used for this yet).
Edit to add that 500 layouts / game areas is quite ambitious... IMO (I hope you can get it to work - it sounds like a great epic, though!).