Adding an additional role to an Administrator

use the profile_update hook and in the hooked function, run this check to make sure that it’s adding the previous data to the users profile on update too.

if ( $update ){
        do_action('profile_update', $user_id, $old_user_data);
}else{
        do_action('user_register', $user_id);
}
return $user_id;

This answer can help you understand it more: WordPress edit_user_profile_update update secondary role