Auf die CHM verzichten.
Der Inhalt ist ja letztlich (mehr oder weniger) eine "gepackte" Webseite.
Den Inhalt der Hilfe von daher "einfach" in 'nem TWebBrowser anzeigen und über 'nen Webserver ausliefern lassen?
Nur mal so als Idee, wenn's anders nicht sinnvoll realisierbar ist.
Die Komponente TApplicationEvents hat dafür das Ereignis OnHelp.
function TForm1.AppEventsHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
In Data steht der Wert aus HelpContext der Komponenten, die beim Hilfeaufruf den Fokus hat.
Damit könnte man dann in 'nem TWebBrowser navigieren:
Delphi-Quellcode:
CallHelp := False;
FormFuerDieHilfeanzeige.WebBrowser.Navigate(Format('http://ServerDerHilfeZurVerfügungStellt:%d/ProgrammnameOderSowas?HelpContext=%d',[PortDesServersWennNicht80,Data]));