how to make previously entered values appear for multistep forms after validation errors
I was bitten by a similar case in a multistep form scenario, though in my case it was use of the "Previous" button that didn't preserve user entered values. 

Initially I was under the impression that D7's form_builder() would automatically merge user data in $form_state['values'] back into the '#value' property of the form elements on previous step's subform, but this never happened!

After reading carefully through examples module, form_example/form_example_wizard.inc, I realized that I had to use:

'#default_value' =&gt; !empty($form_state['values']['my_elem']) ? $form_state['values']['my_elem'] : '',


on all form elements that I wanted to "remember" their user input!