To be a bit more secure or serious, you want to check if everything went ok, before you delete all images on the old page.
If I undestood right, the new page images should be an exact copy of the old one. Therefore we can delete all (optionally) images on the new page first.
Then, after adding all images to it, we compare both collections. When on PHP >= 5.6.0, we can compare the ->items(), what contains a list of all image basenames, what is fine!
If we, unfortunately, on PHP lower then 5.6, we can at least compare the count of images, or have to loop through both collections and compare the basenames one by one.
$pageNew->of(false);
$pageNew->images->deleteAll();
$pageNew->save();
foreach($pageOld->images as $image) {
$pageNew->images->add($image->filename);
}
$pageNew->save();
// now check for success or failures
$success = version_compare(phpversion(), '5.6.0', '>=') ? $pageNew->images->items() === $pageOld->images->items() : $pageNew->images->count() === $pageOld->images->count();
if($success) {
// delete images on old page
$pageOld->of(false);
$pageOld->images->deleteAll()
$pageOld->save();
}