Do all of your html files call qlik.openApp()? If so, then the selections will not be kept as you navigate between the different HTML pages. I was advised that it is better to have the tabs within the same html page and to hide/show the divs containing the tab code.
You must be opening the app in one of the script files referenced in one of your html files otherwise how can you access your visualizations? I am using bootstrap too and have combined the tabs into one html file. Here's a link to a page that might help you out:
You can maintaining selections in this way and I have not found this approach to be buggy at all. It's just a question of understanding how mashups work - create session, open app, reference objects, apply and change selections etc.