So for anyone who is interested, hello? hellllooooooooo (echo)
I've managed to do everything I needed without any Ajax in the end. I used GreyBox (didn't like the default css themes on colorbox and the GB with SS looked fine) and jQuery.
The virtual subpage function just re-renders the object with a new template file containing the form variable and different content
the form action function does its thing and re-renders the object with a thankyou template displaying more content from the CMS
An accountID input field on the main page hold the account ID
the balance function calls the external service with the accountID and receives an HTML response which is stored in a local variable
the balance funcrion returns renderWith('BalancePage.ss') which has a reference to the local variable to render the result.
Easy once you know how :o)