No se mucho del tema, pero viendo la documentación veo que el parametro de la función session_regenerate_id, es opcional y si asignas "true", hace justamente eso, borra los datos de la sesión y crea una nueva.
Cita: delete_old_session
Si se borra el archivo asociado antiguo o no.
Instead of `session_destroy`+`session_start`, use the `$delete_old_session` parameter to `session_regenerate_id` to delete the previous session data.
Traduciendo: En vez de usar session_destroy + session_start, usa el parametro $delete_old_session a session_regenerate_id para eliminar los datos de la sesión anterior.
Así que creo que puedes solucionar el problema simplemente borrando el "true", en resumen:
session_regenerate_id();