Qué tal?
En primer lugar, cuando se utiliza una interfaz con MDI, sólo se puede tener un único menú activo y visible a la vez, que será siempre el que pertenezca al formulario activo, por eso (si te he entendido bien) el menú principal desaparece cuando abres otro formulario. Es el comportamiento normal y no se puede cambiar, y no es que desaparezca, si no que el menú del MDIChild activo reemplaza al menú del MDI padre.
La lógica detrás de ese comportamiento es que si el menú cambiase con tanta frecuencia, se podría confundir al usuario, que podría llegar al punto de no saber qué formulario debe activar para acceder a una opción de menú determinada. Por eso, debes diseñar correctamente tu aplicación de forma que todas las opciones accesibles por menú estén siempre en el MDI padre, y no poner nunca en el menú opciones que sólo funcionen en uno o dos formularios... o al menos, habilitarlas y deshabilitarlas al activarlos.
Por otra parte, el que un formulario sea modal significa que va a acaparar el foco de la aplicación hasta que se cierre, es decir, no se va a poder trabajar con ningún otro formulario aunque esté visible, y por eso siempre los modales se quedan al frente de todos los demás.
De todas formas, los formularios modales no pueden ser MDIChild, así que se pierde toda la funcionalidad de esta interfaz.
Yo creo que la solución a tu problema no es técnica, si no de diseño: tal vez el formulario de búsqueda no deba ser modal (a gusto del consumidor

), pero si utilizas dos formularios distintos para editar y mostrar los mismos datos, el de edición SÍ debería ser modal para evitar, entre otras cosas, que se pueda editar una cosa y a la vez ver los datos que no cambian en el otro formulario, o ver datos de otro registro que no tiene nada que ver con el que se está modificando... y respecto a los menús, intenta reducir todas las opciones para tener sólo uno (que ningún MDIChild tenga menú propio).