I may be missing something but if you can see all the MIDI messages coming through correctly in Hairless then surely the problem is not in the Arduino program but in something at the backend of Hairless?
With all those delays in the program i's not going to be very responsive. With 5 inputs it will only be reading the inputs about once every 3 seconds but that may be o.k. for your purposes. Of course you could always write all the NoteOns, then delay and then write all the NoteOffs.
BTW why only 9600 for Serial...the Hairless default is 115200 IIRC.
Steve