In certain circumstances (to do with bcms i think) I had to add the following to the page code:
if {[ns_queryget "form:id"] eq "simpleform" && [ns_queryget "__refreshing_p"]} {
# FIX bogus - assumes that if simpleform is being refreshed, it
# should be in edit mode. A safe asumption, but not really how it
# should be done.
set form_mode edit
}
I don't think I've altered the values at the form level - I've only used __refreshing_p within custom widgets (where you have to access the form fields directly anyway)