Haciendo muchas pruebas, fui modificando parte del código y así pude hacer que anduviera sin error. Veamos
1) Desistí de la clase que hace la conexión a la base y la declaré explícitamente.
2) Tuve que cambiar la forma de recorrer el DataTable
For each rw in dt1.Rows
...
por
Dim krow as integer = dt1.Rows.Count
For k = 0 to krow - 1
...
Las razones no las conozco, pero al menos así funciona. Las explicaciones quedan pendientes.
Hasta la próxima