OK dal processo di eliminazione ho finalmente scoperto il problema. Non sono sicuro del perché questo si verifica ma deve essere un bug nel driver ODBC di MySQL.
I campi interi con l'attributo UNSIGNED causano l'errore. La rimozione di questo attributo provoca la restituzione del valore del campo come tipo intero standard. Apparentemente il driver ODBC non gestisce correttamente la conversione da unsigned int a vbscript Integer e restituisce invece un puntatore a un Long.
Ho anche notato questo problema sui campi tinyint(1) che stavo usando come valori booleani. Anche la modifica del tipo di dati da tinyint(1) a int(11) [predefinito] ha eliminato questo errore.
Speriamo che questo aiuti qualcun altro. Cordiali saluti, ho anche pubblicato questo problema nel forum MySQL ODBC Driver ma nessuno si è degnato di rispondere.