Blue tooth communication issues

I have a variation of the Arduino uno I am currently using, and it is called the versalino uno. I got it from virtuabotix.com . I am also using these blue tooth communication devices, and a FTDI programmer that I also purchased from virtuabotix. Anyway I am having some trouble. I am using all this to control a very simple robotic tank. I am using a switch case for code for some basic control and when I open the serial monitor while having the blue tooth devices as communication I do not get the println in the void setup, but when I try to send a command anyway, the robot moves, but I get this message in the verifier box:

at gnu.io.RXTXPort.eventLoop(Native Method)
at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
Error inside Serial.serialEvent()
java.io.IOException: Bad file descriptor in nativeavailable

all this prints over and over again and soon freezes up. Also, on the rare occasion that this does not happen I am able to control the robot for a short time, but it soon gets stuck going in the most recent direction. The only thing I can do for it at that point is go unplug it. Now If I do not use the blue tooth devices, and only the FTDI I do not get the message mentioned above and I do get the println, but the robot still does the get stuck in the most recent direction thing. Here is the code I am using.

#include "MotorMaster.h"

MotorMaster myMotorMaster = MotorMaster();
MotorMaster myMotorMaster2 = MotorMaster();
void setup()
{
  Serial.begin(9600);
  Serial.println("I live.");
  myMotorMaster.begin(BUSB);
  myMotorMaster2.begin(BUSA);
}

void loop()
{
checkCommands();
}

const byte cyclesBeforeSerialCheck = 1; //this determines how long to go without checking SerialPort
const byte cycleLength = 100;

void checkCommands()
{
  while(Serial.available() == 0);
if(Serial.available() > 0){ 
switch(Serial.read())
{
  case 's':  //backward
  myMotorMaster.drive(COILA, FULLREVERSE);
  myMotorMaster.drive(COILB, FULLREVERSE); 
break;

  case 'w':  //forward
  myMotorMaster.drive(COILA, FULLFORWARD);
  myMotorMaster.drive(COILB, FULLFORWARD);
break;

  case 'd':  //dime turn
  myMotorMaster.drive(COILA, FULLREVERSE);
  myMotorMaster.drive(COILB, FULLFORWARD); 
break;

  case 'a':  //dime turn
  myMotorMaster.drive(COILA, FULLFORWARD);
  myMotorMaster.drive(COILB, FULLREVERSE);
break;

  case 'm':
  myMotorMaster2.drive(COILA, FULLFORWARD-.75);//camera rotation
break;


  case 'n':
  myMotorMaster2.drive(COILA, FULLREVERSE-.75);//camera pan
break;
  case 'j':
  myMotorMaster2.drive(COILB, FULLFORWARD-.75);//camera tilt
break;
  case 'h':
  myMotorMaster2.drive(COILA, FULLFORWARD-.75);//camera tilt
break;

  case 'l'://single track control
  myMotorMaster.drive(COILA, FULLFORWARD);
break;

  case 'k'://single track control
  myMotorMaster.drive(COILB, FULLFORWARD);
break;

  case 'b'://stop everything
  myMotorMaster.drive(COILA, FULLSTOP);
  myMotorMaster.drive(COILB, FULLSTOP);
  myMotorMaster2.drive(COILA, FULLSTOP);
  myMotorMaster2.drive(COILB, FULLSTOP);
break;

default:
  myMotorMaster.drive(COILA, FULLSTOP);
  myMotorMaster.drive(COILB, FULLSTOP);
  myMotorMaster2.drive(COILA, FULLSTOP);
  myMotorMaster2.drive(COILB, FULLSTOP);
Serial.println("NO");
break;


}
}
}

Also I have tried replacing every electrical component, so I am quite certain its not just something I need to replace.