OK par le processus d'élimination j'ai finalement découvert le problème. Je ne sais pas pourquoi cela se produit mais il doit s'agir d'un bogue dans le pilote MySQL ODBC.
Les champs entiers ayant l'attribut UNSIGNED provoquent l'erreur. La suppression de cet attribut entraîne le renvoi de la valeur du champ sous la forme d'un type Integer standard. Apparemment, le pilote ODBC ne gère pas correctement la conversion de type int non signé en vbscript Integer et renvoie à la place un pointeur vers un Long.
J'ai également remarqué ce problème sur les champs tinyint(1) que j'utilisais comme valeurs booléennes. Changer le type de données de tinyint(1) à int(11) [la valeur par défaut] a également éliminé cette erreur.
J'espère que cela aidera quelqu'un d'autre. Pour info, j'ai également posté ce problème sur le forum MySQL ODBC Driver mais personne n'a pris la peine de répondre.