sterretje:
Fritzing Project - Midi Router
It was done before; I can't say how successful it was; but you can always try it 
I also found Next/previous switching a multiplexer
Again I have no idea how well it works.
I don't understand your problem with the timing; multiplexers are like electrical switches (basically no delays). As said, you might interrupt a message and switch into the middle of another message and that will cause corruption. The second link has a "sound detection" circuit in one of the pages to light a LED while data is being received; you might be able to use that to prevent switching.
But then it becomes a lot more complicated.
Hi Sterretje,
the first link points to a project with a rather incorrect name: this guy did not make a router, he made a simple MIDI keyboard which input is converted to a MIDI message (if I get the rather limited information on that page).
The second link is indeed a router, but this represents a small portion of my goal: 16 INs that can be selectively routed to 16 OUTs. That link has 16 INs to 1 OUT.
Timing: since MIDI is a clocked signal, it's clock needs to be respected to be understood correctly buy the receiving MIDI device. MIDI is also latency sensitive: if you listen to music based on MIDI and some notes come late, it's easy to see how that could be a problem. I direct and immediate routing should happen, while respecting the 31250 baud speed, which is the MIDI standard.
Corruption is only a problem if you do many-to-one or many-to-many, you need to mix MIDI signals in that case. I'm not doing that, I'm doing one-to-one or one-to-many. If a certain output is chosen in one-to-many, it can not be used by another port. That should both be pratical and eradicate corruption is no signals are conflicting.
The challenge remains to get MIDI signal from input A to output C (and possibly D,E,F and G) in a timely fashion. If during that process a MIDI signal arrives at input D, it should be routable to output A,B,C and whatever (not D,E,F and G since input A already uses those outputs).
It sounds easy, but it seems not to be. I have a hard time developing a circuit for this.
BC