Тяжело понять по этому отрывку кода, нужно весь код видеть.
Первое что бросается в глаза:
else
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, $fileId);
У вас тут параметры не все, т.е. если вы прикрепляете файл, то указываете все параметры последовательно.
Как тут:
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, "N", IntVal($v), $fileId);
Порядок можно посмотреть
тут.
Если не помогает то на каждом ветвлении(if/else) и присваивании посмотреть что лежит в $fileId,т.е.
var_dump($fileId);
//или
print_r($fileId);