Hola,
Me temo que no haya una respuesta que pueda dársete para lo que dices. Tal vez a alguien le pasara algo similar y pudiera decirte algo: no es mi caso. Lo único que se me ocurre es que pongas puntos de ruptura aquí y allá, antes, durante y acaso después de que se muestre el formulario "modal". Atento luego a la ejecución del programa "paso por paso" y a si ver descubres la incongruencia que está causando el problema. No se puede decir sino aquello de que algo está fallando, porque en este caso no las hay, no es como en otros que haberlas, haylas. ¿No?