In pratica avevi usato gli stessi nomi a variabili di tipo diverso... E' un classico errore quando si trasportano pezzi di programma...
Quello che però mm afferma, è che lo stesso eseguibile non lavora allo stesso modo su pc diversi. Questo mi fà pensare più a qualche interazione con l'esterno, più che all'interno del codice stesso. Questo a meno che la funzione errata venga chiamata solo in determinati frangenti, per cui l'errore esce fuori solo in quei punti.