It looks like you are using the get_permalink() method for the action on your forms. This is troublesome in some cases and does not follow what I think is WordPress convention.
get_permalink() uses the WP_HOME url to build links. But in form actions using POST you should be using WP_SITEURL so that you post to where the site files are being stored instead of the possibly superficial url the site sits behind.
In most cases for most users WP_HOME and WP_SITEURL will be the same but if they are not the same it makes a big difference. For example, we are in the process of putting our WordPress site behind Amazon Cloudfront which is a site acceleration utility. Unfortunately, Cloudfront does not allow POST actions on any page that it is working for (WordPress and plugins like Membership use quite a few POST form actions). Fortunately, WordPress has given us WP_HOME and WP_SITEURL to get around this. From what I’ve seen WP_HOME by convention is used for linking to pages, whereas WP_SITEURL is used in form actions and to serve the admin pages.
This is important for Cloudfront because it caches on a subdomain level. So, if we tell Cloudfront to serve our site at http://www.example.com and to pull from an origin of cp.example.com, we would set WP_HOME to http://www.example.com so all of our links get created with that domain and are cached with Cloudfront, and we set WP_SITEURL to cp.example.com so that all of our POST form actions and admin pages are served from the origin and thus are not subject to the limitations that Cloudfront has with POST actions.
Long story short, is there an easier way to fix this other then editing all of the form files individually? And can we expect this to go into consideration for the next release of Membership?