Hey ed,
Can I suggest something, Im not sure if this will be right, Ive only worked on one Roland unit before.
I just checked the FC-300 manual and at the back (page 64-66) it has a few pages based on "how" the sysex messages are compiled.
Ok, first off, Im pretty sure your using the wrong value for your V or data.
The value which changes for "each" switch, is actually the [7F] part... (seems strange I know, bare with me) this part is important, remember, each "switch/pedal" has to have its own "address" individually, or how can it know where to send "received" values?... so each switch has to have its own identifying number. According to the manual, page 65, under Pedal Status...
Pedal 1 Address [20 00]
Pedal 2 Address [20 01]
Pedal 3 Address [20 02]
Pedal 4 Address [20 03]
Pedal 5 Address [20 04]...
etc
etc
Here those values are in your recorded data...
(when pressed, FS 1 sends:) F0 41 00 00 00 20 12 [20 00] 7F 61 F7
(when pressed, FS 2 sends:) F0 41 00 00 00 20 12 [20 01] 7F 60 F7
(when pressed, FS 3 sends:) F0 41 00 00 00 20 12 [20 02] 7F 5F F7
(when pressed, FS 4 sends:) F0 41 00 00 00 20 12 [20 03] 7F 5E F7
(when pressed, FS 5 sends:) F0 41 00 00 00 20 12 [20 04] 7F 5D F7
The value, for a switch!... can really only be two states, ON or OFF. Again in the same table from Page 65 of the manual, we see that the "Data" (or the V part for MD2) is either 00/7F.
7F is actually the highest value you can send with 1 byte of midi (midi only uses 7 bits). The lowest value is 00, so when manufacturers need to represent two states, as in ON or OFF, they usually go for 00/7F, lowest and highest value in one midi byte.
You mentioned that the unit sends "two" messages for a foot switch hit, one message for pressing down, another for lifting your foot off. Im betting the messages for the foot off will be as follows...
(when depressed, FS 1 sends:) F0 41 00 00 00 20 12 20 00 "00" ** F7
(when depressed, FS 2 sends:) F0 41 00 00 00 20 12 20 01 "00" ** F7
(when depressed, FS 3 sends:) F0 41 00 00 00 20 12 20 02 "00" ** F7
(when depressed, FS 4 sends:) F0 41 00 00 00 20 12 20 03 "00" ** F7
(when depressed, FS 5 sends:) F0 41 00 00 00 20 12 20 04 "00" ** F7
Notice the 7F is now 00 or in other words, OFF. (I cant test this mind you, this is just an educated guess ;)
The byte that I have replaced with ** is the checksum value. This always changes with every packet of data. It has nothing to do with values nor address, its for error checking. You can easily add this in MD under the sysex page, theres a section to add many different Checksum routines, as each manufacturer uses different checksums, some manufacturers don't even use them at all. The only way to know is to read the Midi Sysex manual for the device your working on... (yeah..prepare to go to sleep fast, its boring shit! lol)
Hope this helps, your close mate, but Im betting those pages in the manual will help you a lot. Let me know how you go.
Cheers
Brett ;)