If you use any automated system, relays, etc, or even switches, you can get an instant unstoppable fire if anything goes wrong during switching.
For instance, if one of the relays' contacts welds shut, and your system attempts to open it and then it closes the next relay, it's now shorting across whatever the stuck relay was supposed to have disconnected, pouring full battery current directly thru that connection.
You can add fuses to ensure that when this kind of failure happens, it at least doesnt' take out more than the relay itself. But now the pack doesn't work in either mode, until you replace the fuse after troulbeshooting and fixing the problem. (you don't want to replace the fuse until *after* you fix it).
Another problem is that relays have mechanical contacts, and if they are not springy enough, then sufficient bumps or vibration can cause them to either disconnect or even (less likely) connect. Either case could cause arcing across the contacts (because it would happen under load, unlike normal switching), and arcing can eitehr burn contacts to make them no longer connect, or it can weld them togehter so they can no longer disconnect.
If I were going to do this at all (whcih I wouldn't), I'd use keyed connectors as a plug that must be completely removed from one configuration, and replaced with a different plug for the other configuration. My personal preference is for Anderson SB50s (and larger), because tehy are desigend with mounting points for handles, etc., making them easy to use for this purpose. PP45/75/etc wold also work since they can be keyed in many ways, so the configuration plugs CANNOT be plugged in the wrong way.
What I would *really* do, to have speed available, and *also* range, is just leave the pack wired as the high voltage configuration, because it has exactly the same Wh available in either configuration, so ti has exactly the same available range.
If I simply couldn't control my throttle usage, I'd either make a switch for the throttle itself preventing me from using the speed, or more liekly I'd simply setup a speed limiter of some sort (myself, I'd use the Cycle Analyst for that, since I'd already have one in the system for power monitoring).
But switching the packs around is asking for a dramatic failure, eventually. :/
Something else to think about is that the pack wont' have a BMS that can be switched around like taht, so the pack is at risk from overdischarge (at the cell level, at least). YOu *could* build two totally separate packs, each with it's own BMS, paralleling or seriesing them at need...but unless the BMSes both have FETs that can handle the full pack voltage at 96v, then if one shuts off when seriesed, it could blow the FETs in that BMS (which may either make the pack no longer work at all, or may prevent the BMS from being able to shut the pack off to prevent overdischarge, and the cells would be damaged).
There also won't be a controller LVC, because if you have it set for the 48v setup, to protect the pack that way, it can't protect the 96v version. If you set it to protect the 96v version, the 48v version won't even work at all. If your controller is programmable, you can of course set it every time you change it, but that would get old real fast.
If instead you just use a 96v controller with the proper LVC for a 96v pack, and use a BMS for a 96v pack, and leave it as 96v all the time, and charge it as a 96v pack, everything is much simpler, and probably safer.