Well, the diagram is a bit of a mess right now, I'll try to clear it up and post it if needed. But the 6N138 part is similar to the one on the pjrc website.
Just to give you an idea of what happens, here's a screenshot of MIDI Monitor.
Basically, I have a note 60, velocity 100 channel1 sent every second to "Port 1" (note off 1 sec later, vel 64). Port 1 is harwdware MIDI Out port from my soundcard, which is connected to the Teensy 2 MIDI In port (the one with the 6N138).
The Teensy (renamed SotL Mk2) is supposed to send the received note back to its usbMIDI port, as per the code below.
So we are supposed to see "To Port 1 note 60 vel 100 channel 1" and just below, "Form SotL Mk2 note 60 vel 100 channel1", but as you can see, the result is unpredictable (although not completely random, I can see a pattern...)
So the 6N138 does receive data. It's just that the MIDI data seems a bit shuffled from time to time.

Code:
#include <MIDI.h>
MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);
void setup() {
MIDI.begin(MIDI_CHANNEL_OMNI);
MIDI.turnThruOff();
MIDI.setHandleControlChange(onControlChange);
MIDI.setHandleNoteOn(onNoteOn);
MIDI.setHandleNoteOff(onNoteOff);
}
void loop() {
MIDI.read();
}
void onControlChange(byte channel, byte control, byte value) {
usbMIDI.sendControlChange(control, value, channel);
}
void onNoteOn(byte channel, byte note, byte velocity) {
usbMIDI.sendNoteOn(note, velocity, channel);
}
void onNoteOff(byte channel, byte note, byte velocity) {
usbMIDI.sendNoteOff(note, velocity, channel);
}