В аналогичной ситуации, get_declared_classes() показало что CIBlockElement действительно остался незагруженным, несмотря на prolog_before и include_module.
До причины не докопался, грязно хакнул:
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/mysql/iblockelement.php");
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/mysql/iblock.php");
Не хорошо (на случай, кому срочно).