Simple Multiple RX/TX SoftwareSerial?
As Ignacio mentions, you should not be stopping and starting the serial ports. Instead just switch between them with .listen():


  Enables the selected software serial port to listen. Only one software serial port can listen at a time; data that arrives for other ports will be discarded. Any data already received is discarded during the call to listen() (unless the given instance is already listening).
  
  SoftwareSerial::listen() Manual Page


So your code would be written as:

#include &lt;SoftwareSerial.h&gt;

SoftwareSerial Ser1(10, 8);
SoftwareSerial Ser2(16, 7);
SoftwareSerial Ser3(14, 4);
SoftwareSerial Ser4(15, 2);
//Set up (RX, TX) pins^

void setup() {
  Serial.begin(9600);
  Ser1.begin(9600); // open Ser1
  Ser2.begin(9600); // open Ser2    
}

void loop()
{

  delay(1000);

  Ser1.listen(); // Select Ser1 for receiving
  Ser1.print(F("AT\r\n"));     

  delay(1000); // Give it time to send a response or you'll get nothing!

  while ((Ser1.available() &gt; 0)) { //Read entire string
    Serial.write(Ser1.read()); //Dump it to serial monitor
  }

  //Should Respond with "OK"

  Serial.println(); // Extra line in Serial Monitor for neatness

  Ser2.listen(); // Select Ser2 for receiving
  Ser2.print(F("AT\r\n"));

  delay(1000); // Give it time to send a response or you'll get nothing!

  while ((Ser2.available() &gt; 0)) {
    Serial.write(Ser2.read());
  }    
}