If the conditional disabling works on the tool bar(s), then there is absolutely no reason why the same logic will not work on the buttons placed on the form (I assume you are using the tool button subclasses from cmTools.vcx).
If this is the case, you have to say that for some reason, the form based buttons are not receiving the refresh message when lChanged is True. To establish this, I would take a look at the statemanager.RefreshAll method and see if your form based buttons get a refresh message after calling this method.
HTH
-=Gary