I've searched for hours why email was not saved when registration.
This was because i change mail label in form_alter.
This must be done in form_after_build.

To avoid this (mail field is part of registration form), can you add mail in the list of excluded fields like this.

<?php
foreach (array('uid', 'name', 'author', 'buttons', 'language', '#theme', 'options','mail') as $key) {
      unset(
$node_form[$key]);
    }
   
$form_add = $node_form;
?>

Or better, invoke a hook returning fields to be excluded.