Никогда не работал с MODx, но задача мне близка.
На мой взгляд у вас есть два варианта:
— Увеличить время работы скрипта (
set_time_limit) дабы не было рамок во времени. Возможно скрипту так же не хватает памяти, я работал с похожей проблемой на Kohana и Doctrine в качестве ORM, катастрафически не хватало памяти (
ini_set('memory_limit', '512M'))
— Все делать «ручками» и писать «голые» SQL запросы к базе. Минусов в этом варианте море — от большего шанса ошибиться до потери большого количества времени на разбор структуры и связей в базе.