Решил проблему так:
1. Мусорных строк в файле всегда 4, так что просто удаляем первые 4 строки:
(gc source.xml -Encoding UTF8 | select -Skip 4) >out1.xml
| sc out1.xml - не сработает, т.к. сконвертирует символы переноса строк.
2. Спасибо
dodo512
(gc out1.xml -Encoding UTF8 | out-string) -replace '(?s)(?<=<catalog>).*?(?=<items>)', '' >out.xml
10-мб файл обрабатывает за пару секунд.