form ajax forget's changes made in previous ajax callback calls
AJAX callback function is meant to only tell Drupal what to update. By design all you do in it is for one call only.

Permanent changes needs to be done in main form creation function. I usually see them done in block like that:

if (!empty($form_state['values'])) {
  //here you are supposed to use these values
}