Yep. Known limitation of switching between the two editing modes as the Visual Editor mode uses a visual editor platform that’s not up to the latest version (WordPress 3.9 will be rolling out a newer version of this platform and it should work better) and when switching, as it doesn’t understand the latest HTML additions, will remove what it sees as extraneous elements.
For best results, pick one editing mode and stick with it while editing a page/post. You can switch back to a different editing mode after you hit publish/update post.
I always use the Code tab. But I am the webdesigner. The client, that is the real user, will almost always use the Visual tab.
To solve the tags that are reformated I used, until now, shortcodes. But that´s not an ideal solution.
Check this post out (and the plugin): http://alisothegeek.com/2011/05/tinymce-styles-dropdown-wordpress-visual-editor/
Basically this allows you to add your custom styles into the visual editor and also to make it so the visual editor actually shows (somewhat) what the content will actually look like.
See also https://codex.wordpress.org/TinyMCE_Custom_Styles