Вы уверены, что корректно достаёте значение из куки?
Я вижу, что при сохранении вы сериализуете данные $APPLICATION->set_cookie("favorites", serialize($arElements));
Но когда достаёте обратно не делаете десериализацию $arElements = $APPLICATION->get_cookie('favorites'); и почему-то надеетесь, что вам вернётся массив