I was having the same problem.
Basically, I had my wordpress running from two seperate domains with two seperate codebases, but sharing a database. When adding (or editing the folder name of) a theme in only one of the codebases, when visiting the other site/codebase, it couldn't find the theme I had selected, and so chose a theme it knew it could find.... default!
You must have two seperate wordpress codebases sharing a database. If not, it must be a different problem, sorry!
1. Make sure the theme exists in both codebases!
2. Have both [sub]domains point to the same codebase.
3. Have each [sub]domain use a seperate database.
4. Delete one of the codebases (and set up a redirect)
I chose option 4 because I don't need them both! (I was migrating)
Hope this helps!