Van de Rhodes Chroma mailinglist:
Danny - I hadn't really thought about this before - but my best guess is that the behaviour has to do with how 'instruments' and 'programs' are managed on the Chroma and what the MIDI interface does with them.
Specifically - at any one time, the Chroma can have up to 8 instruments
defined (numbered 0->7).
The Chroma midi interface can be configured to use a certain number of
these (up to

.
Generally the way it works is that the intruments are assigned based on
the assigned midi channel.
For instance, if the midi interface is set up to use 3
channels/instruments - and if the base channel is "9", then we'd have:
midi channel 9 -> chroma instrument 0
midi channel 10 -> chroma instrument 1
midi channel 11 -> chroma instrument 2
Each Chroma instrument can respond to controllers - so if you send in
controller data in on channel 10 - and you'll successfully affect
instrument 1. Similarly, you can send in controller data on channel 11
and you'd affect instrument 2.
Inside the Chroma, Instruments are defined by passing in a program number.
When you do a MIDI patch change (let's say we change to patch 12 on Midi Channel 10, in this example), then the chroma does a "define instrument 1, based on program 12."
From this point on, any commands coming in on instrument 1 (channel 10) will be modifying a copy of the program 12 data.
The reason that this explanation is important is that the front panel controls only affect 'program 0'.
For instance, when you press a program button on the front panel, inside the chroma it creates a new instrument based on the program. That instrument is referenced to patch/program 0 (the working patch).
Any chroma panel changes from that point on are made to 'program 0' - the active program.
Keeping this in mind, if you use the BCR2000 to send a continuous controller to the Chroma (to change a parameter), then the parameter change will on a certain midi channel. That channel is associated with a particular instrument, and that instrument is defined by a copy of a program.
Carrying on with the example above, if you sent a continuous controller message on channel 10 - then you'd be affecting a copy of program 12.
The only way that you could have the external continuous controller data affect the panel/current/working program (i.e., the one you can save with the panel buttons) would be if you could somehow have the instrument reference program 0.
Unfortunately, the Chroma Midi Converter doesn't allow you to do this. If you attempt to send a "MIDI patch change" and pass in patch number 0 the Midi Converter would perform an 'undefine' operation on the instrument (per the Midi Converter manual) instead of passing this on to the Chroma directly.
In summary, it does not appear that you'll be able to easily 'save' a program that has been 'changed' with an external MIDI interface; rather, the best/easiest way to do this is to leave the original patch unchanged, and 'snapshot' the controller settings into a sequencer (so the changes are reapplied each time you want them).
To make the settings more permanent, you'd could do so via a manual edit (i.e., snapshot the changes, and then manually update those handful of controllers via the front panel interface of the Chroma).
A slightly longer-term way to fix this behaviour would be to edit the firmware inside the Midi Interface to handle the continuous controller/instrument definition messages differently.