Не стал вникать в проблемы вашего кода, но недавно писал подобную галерею. Вот, может пригодится.
<div id="cont_galery" style="position:relative;">
<img src="/front_img/2.jpg" alt="" style="display:none; position:absolute;" />
<img src="/front_img/3.jpg" alt="" style="display:none; position:absolute;" />
<img src="/front_img/4.jpg" alt="" style="display:none; position:absolute;" />
<img src="/front_img/5.jpg" alt="" style="display:none; position:absolute;" />
<img src="/front_img/1.jpg" alt="" style="position:absolute;" />
</div>
$(document).ready(function(){
arimg = [];
arimg = $('#cont_galery').find('img');
imcount = arimg.length;
$.each(arimg, function(i){
arimg[i]=$(this);
});
$('#cont_galery').find('img:not(:last)').hide();
setInterval(slideshow,4100);
i=imcount;
function slideshow(){
if(i<(imcount-1)){i++}
else {i=0}
if(i==0) j=imcount-1;
else j=i-1;
arimg[i].fadeIn(1500);
arimg[j].fadeOut(1500);
}
});