OK genom elimineringsprocessen upptäckte jag äntligen problemet. Inte säker på varför detta inträffar men det måste vara ett fel i MySQL ODBC-drivrutinen.
Heltalsfält med attributet UNSIGNED orsakar felet. Att ta bort det här attributet gör att fältvärdet returneras som en standard heltalstyp. Tydligen hanterar ODBC-drivrutinen inte konverteringen från osignerad int till vbscript heltalstyp korrekt, utan returnerar istället en pekare till en Long.
Jag märkte också detta problem på tinyint(1)-fält som jag använde som booleska värden. Genom att ändra datatypen från tinyint(1) till int(11) [standard] eliminerades även detta fel.
Förhoppningsvis kommer detta att hjälpa någon annan. FYI Jag postade också det här problemet i MySQL ODBC Driver-forumet men ingen brydde sig om att svara.