Вы передаете дополнительные аргументы в свой XmlSerializer? то есть используя конструктор не по умолчанию? да, он делает это (так как каждый раз создает новую сборку сериализации) ... рассмотрите возможность создания сериализатора в инициализаторе типов и кэширования его:
static readonly XmlSerializer foo;
static MyType() {
foo = new XmlSerializer(typeof(TypeToSerialize), additionalArgs);
}
, а затем повторно использовать кэшированный экземпляр сериализатора foo
.