SoftwareSerial problems
Taken from http://www.arduino.cc/en/Reference/SoftwareSerial:

Limitations

The library has the following known limitations:

If using multiple software serial ports, only one can receive data at a time. 


If your project requires simultaneous data flows, see Paul Stoffregen's AltSoftSerial library. AltSoftSerial overcomes a number of other issues with the core SoftwareSerial, but has it's own limitations. Refer to the AltSoftSerial site for more information. 

If you look at SoftwareSerial's code, you'll understand the limitation:

/* static */
inline void SoftwareSerial::handle_interrupt()
{
  if (active_object)
  {
    active_object-&gt;recv();
  }
}


Basically, the code waits for an interrupt to detect state changes on the pin, and directs it to the "active" serial object.

Hope this helps.