Some DICOM tags are not copied even when setting LoadPrivateTagsOn & SetMaxSizeLoadEntry

Hi,
I am trying to anonymize DICOM files, while keeping the rest of the data.
Some keys are lost during the copy, for example:
00e1|1046, 01f1|100f , 01f1|1044, 01f7|109b
Also one key is added 0028|1054 with value US

Here is my code:
itk::ImageFileReader::Pointer singleImageReader = itk::ImageFileReader::New();
itk::GDCMImageIO::Pointer dicomIO = itk::GDCMImageIO::New();
dicomIO->LoadPrivateTagsOn();
dicomIO->SetMaxSizeLoadEntry(0xffff);
dicomIO->SetKeepOriginalUID(true);
singleImageReader->SetFileName(Q2C(srcFilePath));
singleImageReader->SetImageIO(dicomIO);
try {
singleImageReader->Update();
}
catch (itk::ExceptionObject & e) {
qDebug() << “[Dicom Reader] ERROR loading:” << srcFilePath << " Error: "<< QString::fromStdString(e.what());
return false;
}
ImageType::Pointer inputImage = singleImageReader->GetOutput();
itk::MetaDataDictionary& dictionary = inputImage->GetMetaDataDictionary();
itk::EncapsulateMetaDatastd::string(dictionary, patientNameTag, “”);
itk::EncapsulateMetaDatastd::string(dictionary, patientIdTag, “”);
itk::EncapsulateMetaDatastd::string(dictionary, patientSexTag, “”);
itk::EncapsulateMetaDatastd::string(dictionary, patientBirthDateTag, “”);

itk::ImageFileWriter<ImageType>::Pointer singleImageWriter = itk::ImageFileWriter<ImageType>::New();

singleImageWriter->SetInput(singleImageReader->GetOutput());
singleImageWriter->SetFileName(Q2C(dstFilePath));
singleImageWriter->SetImageIO(dicomIO);
try {
  singleImageWriter->Update();
}
catch (itk::ExceptionObject & e) {
    qDebug() << "[Dicom Reader] ERROR writing:" << dstFilePath << " Error: "<<  QString::fromStdString(e.what());
    return false;
}
return true;

Any ideas ?