Form element #default_value and AJAX
I know this is late, but for people like me who are still experiencing similar problems with ajax and forms in Drupal, here's how I fixed this.
In your ajax callback function, instead of returning just the render array, you need to call the form_builder() function and return its result.
Eg., my code goes like this:

function inventory_purchase_item_add_ajax(&amp;$form, &amp;$form_state) {
    //...

    unset($form_state['input']['line']);
    unset($form_state['values']['line']);

    //Update the form's lines array
    $lines = update_inventory_purchase_form_lines($form_state['node']-&gt;line, $purchase_item_count);
    $form['vtab1']['purchase']['items_wrapper']['line'] = $lines;
    return form_builder($form['#id'], $lines, $form_state);
}