Проблема в том, что при быстром вводе результат не успевает обработаться и некоторые результаты могут по несколько раз выводиться
'routing' => ['value' => [
'config' => ['web.php', 'api.php']
]],
// подключатся файлы:
// /bitrix/routes/web.php, /local/routes/web.php,
// /bitrix/routes/api.php, /local/routes/api.php
Возможна ситуация, когда при проверке вы изменяете товар через админку. Тогда сначала будет обновлён CIblockElement, а потом CCatalogProduct. А между этим будет срабатывать ваш обработчик события, результаты которого затрутся обновлением CCatalogProduct со страницы редактирования товара.