Одна проблема, которую я вижу, состоит в том, что вы никогда не очищаете массив $images
каждый раз вокруг циклов, так что это будет означать, что вместо создания списка изображений для этого списка они будут накапливаться для всех списков.Так просто сбросить массив для каждого списка свойств ...
foreach($xml->children() as $propertylisting) {
// Reset array
$images = array();
foreach($propertylisting->photo->children() as $image_url) {
$images[] = $image_url->__toString();
}