I feel your pain
The RD-2000 has 69 effects, with five controls that are common to all, then from 3 to 26 unique controls. Even when an effect has a control identical to another, it is mostly in a different location. Some are seven bit, some are four + four bits across two bytes. Some are - to +, with zero landing where it will, some are - and + with zero at 64. Some are a short list of text, like room size (small, med, large). Some are simple on / off (0 / 1).
Most overdrive "On" switches are in different locations. Only two rotary speaker sims - at least they share some controls -- until they don't.
A seven bit item activated by four bit control has huge jumps. A four+four bit item activated by seven bit control gets into undefined states.
And almost nothing is documented in the midi implementation guide.
So I gave up and ended up with a separate tab (or portion of tab) for each separate effect, and have coded the 20 most used. (More are a future project.)
And just to make things more interesting - when you change the effect type via MIDI, it does not load default parameters, so you have to completely initialize all respective parameters. Parameters that work for effect 1 will cause a devil's squeal or silence come out of effect 2.
Almost need a relational database to solve the problem.
So I feel your pain.