Non conosco jQuery, ma credo che in base a quello che hai scritto, l'errore stia nel fatto che non sommi lo scroll della pagina alle coordinate del mouse ottenute durante il trascinamento. Altrimenti non si spiega perché con position = fixed il trascinamento funzioni. Lo scroll lo ottieni così:

codice:
scrollOrizzontale = document.documentElement.scrollLeft || document.body.scrollLeft;
scrollVerticale = document.documentElement.scrollTop || document.body.scrollTop;
Ciao.

P.S.: prima di fare modifiche, puoi avere la certezza del fatto che si tratti di questo tipo di errore facendo il trascinamento col mouse prima di scorrere per la pagina, quando sei ancora al "Top"...