You probably need to add the text-offset to the mousemove event as indicated here:
Code:
$('#product_holder a img').mousemove(function(e){
$('#largeImage')
.css('top', e.pageY + offsetY)
.css('left', e.pageX + offsetX)
$('#product_text')
.css('top', e.pageY + offsetY) << + offsetTextY
.css('left', e.pageX + offsetX)
});
Otherwise, as soon as the mouse moves a little bit it will ignore the text-offset.
BTW This is probably not the best way to do this - dynamically creating the elements. Preferable would be to have the image and paragraph contained within a hidden div, and use events to change the image src, the p-text, and then show (or fade, etc.) the div.