Estimado, soy el menos indicado para resolver este tipo de inquietud que presumo se resuelve a nivel de Apis, tema en el que no soy experto, yo solo te pase el link (que marica jaja) .
SIN EMBARGO, tampoco me acobardo y vería alguna forma de resolverlo no importa que no sea la forma adecuada SIEMPRE y cuando no me traiga problemas y lo usaría HASTA QUE encuentre la forma correcta.
Aclaro también que entiendo que tu quieres detectar el click fuera del formulario activo PERO dentro de tu proyecto, sino es así entonces se me complica y en ese caso tendría que dedicarle mas tiempo al tema, pero entiendo que quieres detectar el click no porque quieras detectarlo sino porque quieres evitar que el usuario haga clic en otro formulario de tu proyecto y con ello poder dar un mensaje de que debe usar el formulario activo, en el ejemplo que te mando no doy un mensaje pero si lo dejo en el form activo. Igual se le puede poner un mensaje al pie del form o como prefieras.
Igual algún colega que nos enseñe a mejorar esto se agradece.
P.D: Tema aparte. Doc, y ¿porque no usas el SetParent? recuerdo que con ello se puede hacer un form hijo dentro de otro form (o picture incluso) sin que el form padre sea Mdi.
Aclarado eso, la solución "chafa" pero funcional que conseguí deja de lado a tu timer (de paso nos ahorramos proceso) y los formularios hijos ya no se abrirían como modal.
Insisto, esta es una solución parcial pero funcional que pudiera quedar como definitiva SI ES QUE no se encuentra una forma mejor, ortodoxa si se quiere. Aunque una forma mas chapuza seria poner todo el Formulario padre con enabled = False pero no vi esa opcion porque quiza si se necesite acceder a algun control, el problema de acceder es que te lleva el form activo hacia atras.