Buen día para todos,
Didier, Al parecer tu código esta bien solo por el hecho del orden de los proceso debido a que primero debes mostrar el segundo form2 y luego ocultar el primero.
Ahora bien si la licencia es correcta no tiene sentido mantener activo el form1 porque no simplemente lo cierras con Me.Close().
Ya revisaste el form2 si tiene algún evento que este retornando nuevamente la propiedad del form1 a Show().
Por otro lado si tienes planeado almacenar tu código en el Settings te recomiendo que uses algún tipo de encriptación para proteger un poco mas tu aplicación, debido a que alguien conozca un poco de programación ese seria al primer sitio donde iría a buscar información para poder saltar tu validación.
Te comparto un tutorial sencillo de encriptación.
https://aprendamosdeprogramacion.wordpress.com/2016/12/15/encriptar-y-desencriptar-un-string-en-vb-net/
Espero haber sido de ayuda.
Que tengan buen día,
El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...
Mas ejemplos acá...
https://aprendamosdeprogramacion.wordpress.com/