And if you don't click the populate button, the save works fine? How about if you add default values to the hidden fields, are those saved OK if you don't click the button?
If the above works fine I would simplify the button code by using dojo.xhrGet and dojo.byId and make it update only one field to start with.
- Panu