Well, I finally found the problem.  I don't really understand the solution, but it works.
I have some TCHAR arrays set up in my persistent structure (high score names) that gets saved to the registry.  Before loading values into this array from the registry, I would zero them out by using a for-loop to assign 'NULL' to each element in the arrays.
For some reason, doing this caused all my registry data to load corrupted.  I removed the NULL assignments and it's working now.  Very strange.
 
