Ich hab's nochmals angeschaut. Leider sehe ich immer noch nicht, wieso hier beim Malen eine falsche Updateregion verwendet wird.
Du könntest das Problem wahrscheinlich lösen, indem du eine Kopie von
Vcl.ExtCtrls in deinen Projektordner kopierst und in
procedure TCustomCategoryPanel.Expand;
procedure TCustomCategoryPanel.Collapse;
jeweils vor der Zeile if assigned die Zeile
RepaintChildren(FPanelGroup); einfügst.
Anstatt Repaint; (in RepaintChildren) könntest du Invalidate; aufrufen.
Nach dieser Änderung musst du im eigenen Code keine Anpassungen vornehmen.
Hoffentlich klappt's.