Тоже мучился с этой проблемой. Решается достаточно просто, нужно лишь заново вызвать cloudzoom после обработки клика по доп. изображению, т.е.
<script type="text/javascript">
$(function(){
var imgs = <?php echo json_encode($images); ?>;
var html = '';
$.each(imgs,function(i,image){
html += '<div class="zoom-section"><div class="image zoom-small-image" style="display:none;">';
html += '<a href="<?php echo $popup; ?>" class="thickbox cloud-zoom"><img src="' + image.addthumb + '" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>"/></a></div></div>';
$('.image-additional').before(html);
html = '';
})
html = '<a href="<?php echo $popup; ?>">';
html += '<img src="<?php echo $addpopup; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>';
$('.image-additional').prepend(html);
var images = $('div.right .image');
var thumbs = $('.image-additional a img');
thumbs.on('click',function(e){
e.preventDefault();
images.hide();
images.eq(thumbs.index(this)).show();
$('.cloud-zoom, .cloud-zoom-gallery').CloudZoom();
});
});
</script>