Form Default Values missing on theming form
See examples for developers. You should not theme form in form alter hook. Do it in hook_theme(). In a module it looks like that:

function yourmodule_theme() {
  return array(
    'yourmodule_form' =&gt; array(
      'render element' =&gt; 'form',
      'file' =&gt; 'forms/yourmodule_form.inc',
    ),
  );
}


If you move elements around in form_alter(), they became different fields. If #tree is set to false (default), it does not interfere with submit, but it may interfere with defaults and validation.