Как фильтровать по XML_ID значений свойства типа список? Если никак нельзя, то нахрена вообще нужен этот XML_ID? Вы там вообще хоть немножко соображаете в вебдеве?
попробуй так CIBlockElement::SetPropertyValueCode($arFields["ID"], "PHOTO_SM", Array ($ar_val_id => Array("VALUE"=>$new_make_file) ) ); по идее все должно работать
кароче чтобы удалить файл из множественного свойства, да и вапще любой файл из какого либо свойства нужно в массив описания файла добавить ['del']="Y". Почитайте хелп к функции CFile::InputFile(). Если что непонятно пишите, тоже долго мучался с этим вопросом