Kann auf den ersten Blick auch keinen Fehler sehen. Aber warum verwendest du überhaupt
SetWindowsHookEx? Das ist doch für einen lokalen Hook etwas mit Kanonen auf Spatzen geschossen.
Für die gezeigten Aktionen könntest du doch einfach die entsprechenden Events des Panels (OnDblClick, OnMouseDown, OnMouseUp, etc) nutzen. Wenn du mehr Messages brauchst, wäre die saubere Lösung eine eigene Panel Klasse vom TCustomPanel abzuleiten. Alternativ könntest du auch
Subclassing verwenden, um die WndProc lokal umzubiegen.