В общем вот код добавление картинки к MORE_PHOTO не затирая старые, протестировал на bitrixlabs он рабочий.
\Bitrix\Main\Loader::includeModule('iblock');
$iBlockId = 28;
$file = CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'] . "/backs/doorman.jpg");
$result = CIblockElement::GetList([], ['IBLOCK_ID' => $iBlockId, 'INCLUDE_SUBSECTIONS' => 'Y'], false, false, ['ID']);
while ($element = $result->Fetch()) {
$values = ['n0' => ['VALUE' => $file, 'DESCRIPTION' => '']];
$result2 = CIBlockElement::GetProperty($iBlockId, $element['ID'], [], ['CODE' => 'MORE_PHOTO']);
while ($photo = $result2->Fetch()) {
$values[$photo['PROPERTY_VALUE_ID']] = ['VALUE' => [
'name' => '',
'type' => '',
'tmp_name' => '',
'error' => 4,
'size' => 0,
'description' => ''
], 'DESCRIPTION' => ''];
}
CIBlockElement::SetPropertyValuesEx($element['ID'], $iBlockId, ['MORE_PHOTO' => $values]);
}