The field labels are used from the config translation system. You also need to set the config override language. See user_mail()
in core.
// Temporarily alter the language manager.
$language_manager = \Drupal::languageManager();
$langcode = $message['langcode'];
$variables = array('user' => $params['account']);
$language = \Drupal::languageManager()->getLanguage($params['account']->getPreferredLangcode());
$original_language = $language_manager->getConfigOverrideLanguage();
$language_manager->setConfigOverrideLanguage($language);
$mail_config = \Drupal::config('user.mail');
// Restore the language manager.
$language_manager->setConfigOverrideLanguage($original_language);