Pregunta: Si MySQL tiene su propio conector .Net, ¿por qué usas el ODBC, que es menos fiable?
Estás desperdiciando recursos y capacidades de la librería .Net de MySQL...
Por otro lado, si a estas alturas no sabes lo que es un encoding, y cómo maneja VB.Net internamente los tipos de caracteres, será mejor que vayas leyendo la documentación...
Dicho en pocas palabras: Si MySQL te está devolviendo UTF8, pero tu lo metes en una variable u objeto que lo interprete como ANSI, o UNICODE, simplemente tienes un conflicto de codificaciones.
Una "Ñ" en ANSI, en Unicode, o UTF8, no es lo mismo.
Mira este link, puede que te inspire un poco:
http://stackoverflow.com/questions/5...scii-in-vb-net