Se indichi genericamente un malfunzionamento, non si puo' fare molto ... si dovrebbe prendere tutto il progetto e provarlo di persona ...
Il codice dell'ordinamento e' corretto ... probabilmente ci sono dei problemi nella scrittura dei dati ... ma come si puo' esserne certi senza il codice e senza i dati?
Dovresti fare un po' di debugging, fermando l'esecuzione durante l'ordinamento e controllando il contenuto delle variabili e delle strutture man mano che viene eseguito ...