Well, it seems you are way stressed on making an ultra-secure page.
So here's what I do...
start off with your vanilla HTTPS page
(you are using HTTPS right?)
All the links to that page should be ABSOLUTE URLS (would have to be anyway to transition from HTTP to HTTPS)
This will kill the session (if any)
so now ... Require the user to login again, over the HTTPS server and hand them a brand spankin new session.
Ok, now that they are off to a fresh start, any sniffer will have useless data now.
So, just collect your data and have them send it to your site, not the banks or anyone elses.
Your PHP script will collect the data and test it for completeness and then perform an HTTPS POST to the bank server via cUrl (http://curl.haxx.se) which can use cookies, GET/POST and login. I've been using cUrl to handle server-side HTTPS connections to remote hosts for awhile now, and it works great. And since a would be attacker never sees where you send the data, they sure as hell are going to have a hard time spoofing it. Additionally, you don't have to use any hidden form fields and can keep all your account data like account number and your sites user name safely tucked inside your scripts since your scripts will execute the transaction and not the users browser.
Anyway, hope that helps you some here.