Well, I'm afraid, it's not possible to tell what's wrong or even suggest something without seeing the "switching" code. In my opinion, it's either caused by incorrect "switching" code, bad timing (typical problem in case of web-based automation) or something completely different
There is an option in general settings, which globally enables/disables the use of EnsureVisible. Then each element in repository could be set to use actual (Default) state of this parameter, or forcibly enable/disable the EnsureVisible, regardless of parameter's state in settings.
The thing is, that it seems this option is not applied in code? At least I found it more reliable to explicitly call EnsureVisible method at some places in my code.
BTW, if you have your switching methods in each of these 150 test cases, then I'm afraid, it's a bad design. It would be much better for you to have just one "base" class containing all repeatedly used methods and then inherit this class in all your test cases (as described >here
<). Then all you need to do is to change the code in this base class.