There is a difference, the button sends MIDI, the LED receives MIDI. We can make the buttons act the way you want, but if the LED control is done by the unit itself, and not by MIDI from software, then we will not be able to make the LEDs act how you want.
If you think the LEDs do change with this program change message, which was all I was asking really, then I can go ahead and show you how this can be done with MT...
The file is a little too large to just post up code, so I have created a Preset for you:
The Preset treats each button as different modes and therefore I use different presets for each button. There is a 'master' preset that switches each mode, and this also de-activates a mode if that mode is already selected - like you asked. Each mode, when activated sets a variable, so we can keep track of which mode is selected and also sets all the LEDs accordingly.
I don't know what messages and values each button sends or receives, all you told me was "CB oo", so I left those fields blank for you to fill in, but remember that you will need to set for example the first mode, the buttons when activated as (values) 1, 0, 0, 0 & for deactivation 0, 0, 0, 0, get me?
Also, I do not know the name of the MIDI ports so you will also need to set that up, and then define the Preset properties for each preset. The Master Preset 'Button Switcher' will receive from the unit, where as the Button mode presets send to the unit.
I hope this makes sense to you and you can get everything working...
Scott