While it appears that the switch isn't functioning, what's actually happening is the caching plugin is serving the incorrect theme. You may configure your caching plugin not to cache mobile pages nor to serve cached pages when mobile devices are detected. To do so, enter the user agents found in the documentation link below to the "rejected user agents" areas in your caching plugin's settings. Remember to clear your plugin, browser, and device caches before retesting.
http://www.bravenewcode.com/support/knowledgebase/default-mobile-device-user-agents/#cacheuas