Sounds like it should work, but if it's not, you might add another parameter like "recentsrc=" so it works better.
I'm with Josh. If you've having a problem with the source filling twice then use a 2nd parameter.
We just started using the same URL parameter to capture the original and current values - for approximately 5 different parameters. Basically, we're capturing the original and current values for all the URL parameters that Google URL builder supports and it's working fine.
We're using a custom tracking cookie to store URL parameters in the visitor's browser so that might be helping. If you don't have a tracking cookie to store the URL parameter, then if someone hits your landing page with a URL parameter, then navigates away from the landing page, and then returns to the landing page, the URL parameter is lost. If your form is set to read a URL parameter, MKTO can only read the parameter if it is present in the address on the page. So you need to have a strategy for handling the scenarios when people click a link, hit a landing page, but navigate away from the landing page, before they submit the form.
With regards to your solution above - we want exactly what you've described (a strategy where if someone clicks the link, hits the landing page but navigates away before submitting the form).
You've mentioned your custom tracking cookie to store URL parameters in the visitor's browser. Do you have any advice on the best way to obtain this? Even if it's a brief we can give to a web developer that would be helpful