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)