My event plugin site, http://wp-events-plugin.com uses the membership plugin. I haven't upgraded for a while due to conflicts with BP in the first versions of this plugin, requiring me to hack, but now I got rid of BP and everything is (almost) running smoothly.
The problem I had was the first two tabs on my home page (using the MyProduct theme from Elegant Themes) had the 'Upgrade for access' page content showing, no matter which page I selected. Strangely it showed the third and fourth tabs fine. (screenshots working/not working attached)
The tabs are loaded using query_posts and looping through them.
Jumping into your plugin, I can see the issue is caused by you membershippublic::ensure_option_pages_visible() function, and my current fix is adding this around the code getting affected:
remove_action('pre_get_posts', array(&$membershippublic, 'ensure_option_pages_visible'), 999 );
while (have_posts()) : the_post();
add_action('pre_get_posts', array(&$membershippublic, 'ensure_option_pages_visible'), 999 );
Any insight on what's causing this would be nice. Thanks!