Good evening Pjd
I don't know if I understood your problem correctly (because I use a translator who sometimes misleads me).
But what I can tell you is that I have no problem sending multiple sysex or Control Changes in response to a single event from a hardware device (controller, keyboard) or even software (DAW for example).
My first "rule": no physical device (keyboard or controller) communicates directly with another physical device or another software (except Bome Software which I use as a router).
Hardware, DAWs and other softwares communicate only via virtual ports, which allows me to control, reroute and transform any Midi message circulating.
The scripts I write under 'Bome' take care of this rerouting and possibly communicate with my softwares in Python via special sysex and virtual ports.
To take very basic examples:
1) I want, by pressing a foot controller switch (in this example a Line6 FBV) to send the codes to activate the articulation1 of the Upper1, 2 and 3 voices of the Genos.
When pressing a switch the FBV sends a single controller with a value of 127, it sends a value of 0 when the switch is released.
I memorize this value, which I will name vv in this example, and in response to this event, I send the Midi codes: B0 0A vv B0 0D vv B0 0C vv on port 2 of the Genos.
I have configured the Genos in 'External Controller' to send 'Articulation1 Right1' in response to CC 10 on channel 1 port 2 (B0 0A),
'Articulation1 Right2' in response to CC 13 on channel 1 port 2 (B0 0D)
and 'Articulation1 Right3' in response to CC 16 on channel 1 port 2 (B0 0C).
2) When I use the nanoKontrol 2, I like to have visual feedback from the nanoKontrol's leds.
For example, if I press a switch in one row, I want its led to light up and the other leds of the row to turn off.
When I press a switch, nanoKontrol send me a CC on channel 7 with the value of 127, each of the 8 buttons of the row as his CC number (3C to 43).
The nanoKontrol lights its led if it receives the same Control Change with a value of 127, it turns it off with a value of 0.
When I receive a CC from nanoKontrol, I memorize this CC number in a variable named pp and I send back to the nanoKontrol the following string:
B6 3C 00 B6 3D 00 B6 3E 00 B6 3F 00 B6 40 00 B6 41 00 B6 42 00 B6 43 00 B6 pp 7F
Which has the effect of turning off all the LEDs in the row except the one I just pressed, which turns on.
In complex cases, I configure my script so that it sends a special sysex (with parameters that are specific to me) to a Python program, listening to a special virtual port, which analyzes these sysex and sends any which combination of Midi message to as many virtual ports as I wish.
I want to show by this, that we can send any sequence of Midi events to any hardware or software in response to a single Midi event from any hardware or software device, having no relation to the events that will be sent.
I hope I haven't been too confused and made too many mistakes in English.