cambia esto:
Dim e As Elemento
Dim q As Pastilla
por esto:
Private e as new Elemento
Public p As new Pastilla
(e es privada porque para modificarlo se usa la propiedad setelemento, p la he dejado pública porque no se cómo se usa en el código)
así inicializamos los objetos correctamente para evitar null reference exception, no creo que ese sea todo el problema, ¿qué tipo de error te suelta exáctamente?
Por cierto yo también estoy haciendo un juego ahora, pero el planteamiento no tiene nada que ver, no uso una cuadrícula fija sino sprites con coordenadas.