Thanks for your overview @Ersatzplanet, but I am not entirely clear how midi thru replaces midi merge. It is described that midi merge is setup to allow multiple controllers to one destination, with this in mind, I don't quite understand what gets lost in translation in merge that is gained by midi thru. Ultimately, the design of the code will be to check each port for a message, if there is a message check to see if it is a status byte, if it is then read the next two bytes and send the status byte, and the following two data bytes and send them through to the midi out, then move onto the next port and do the same. The main challenge I see is, 1 - what to do if I read the first byte and it is not a status byte, 2 - ensuring as it cycles through the midi inputs, that it does so in an efficient maner to not cause messages to back up and cause delays to the message arriving.
I have been reading up on a few home made devices and it does seem as though the 2 issues I described are a common concern, but there does not appear to be too much reference to what has actualy eventuated in testing, hence my desire to raise the post to begin with.