So the way I've solved this is to handle it all on the OSC client side (Open Stage Control).
First I set the param bank size in Reaper to an artificially high amount so I can pull in
all the fxparam values/names for the plugin.
I then dump all the fxparam values/names into a multidimensional array, and parse it out in whatever order I want them to appear. I do this by re-assigning OSC addresses for the various Open Stage Control knobs/sliders at runtime. (Fortunately Open Stage Control allows you to manipulate OSC addresses for its controls via code, even after initialization).
I can't say it's the most "elegant" solution, but it's working.