Зависает код на PHP, цикл перестаёт отрабатывать?
SimpleXML не годится для больших файлов. Для них лучше использовать XMLReader, который не строит в памяти все дерево, а читает узлы по одному. Вычитываете из файла категории и продукты, потом уже сопоставляете одно другому на чистом Пыхе.
Перестаньте колдовать с лимитами и читайте файл в цикле построчно