Update: It's still broken, but I've figure out that it's reverting to the state it was originally set in my CSS stylsheet.
For example. If I set them all to display: none in the style sheet, then use JS to unhide one, when I click a random element on the page all the text boxes disappear instead of appearing. It seems any click on the page is causing QV to reload the CSS stylesheet and reapply the styles.
A work around that's working for now is I created two classes ".invisible" and ".visible" in my CSS. Using display: none and display:block respectively. I then have Jquery add the invisble class to all the elements that are hidden at the start and the visible class to the element that is showing. When the function is called to switch slides I have it fade out the current slide and apply the invisible class while applying the visible class to the next slide and then fading it in.
This works because when the system refreshes the CSS on a click the elements have a class applied that keeps them in their invisible/visible state.
It's messy and annoying, but it's working.