Создание прозрачной формы верхнего уровня очень просто. Просто сделайте так, чтобы он заполнил экран или требуемую область, и определите, чтобы он имел цвет TransparenyKey и BackColor одного и того же значения.
Получить игнорирование мыши достаточно просто, вам просто нужно переопределить WndProc и сообщить WM_HITTEST, что все позиции мыши должны рассматриваться как прозрачные. Таким образом, заставляя мышь взаимодействовать с тем, что происходит под окном. Как то так ...
protected override void WndProc(ref Message m)
{
if (m.Msg == (int)WM_NCHITTEST)
m.Result = (IntPtr)HTTRANSPARENT;
else
base.WndProc(ref m);
}