Du kannst die Abfrage vereinfachen:
DouBuf1.Checked := not DouBuf1.Checked;
Somit wird immer der ist Zustand umgekehrt.
Warum dein menü nicht neu gezeichnet wird, weiß ich im Moment auch nicht. Versuch es mal neu zu zeichnen (
Refresh,
Repaint) oder ruf danach mal Application.Processmessages auf.