Я был бы очень удивлен, если бы проблема была в XmlTextReader.
Если вы потратите несколько минут на написание тестовой программы, которая создает XmlTextReader и просто использует Read () для чтения каждого узла в файле, пока он не дойдет до конца документа, держу пари, вы обнаружите, что он масштабирует файл размером 12 Мб, как горячий нож сквозь масло. Это первое, что я бы попробовал, если бы столкнулся с этой проблемой.
Поскольку, исключив XmlTextReader в качестве источника проблемы, вы можете сосредоточить свое внимание на том, что на самом деле его вызывает - это, скорее всего, код, который обрабатывает узлы, которые вы читаете, а не код, который читает узлы.