Bluetooth Slave issues

Hi all, first time here, so if this is the wrong forum please move the post and know that I apologise.

So I'm trying to build my first robot, using an Arduino Uno, the Arduino R3 Motor shield, 2 5v Motors and a BT2S Bluetooth slave, all powered by a 9v battery. I have it wired up so when the BT2S receives the letter 'f', it powers the motors for 1 second. In addition, no matter what letter is receives, it will respond with "Response: "+the letter I have it connected to my Smartphone to test, and I'll include my code at the end of this.

Here's my problem. When plugged into the computer, if I send the letter f through the Serial Monitor, all works fine. It responds to the serial monitor with f and the wheels spin for a second. If I send through any other letter, it sends it back correctly.
Now, if I unplug it from the computer and send the letter f via my Android, it seems to freeze, sending back RE and thats it. If I send any OTHER letter, it responds normally.

My first thought was the power was an issue, but I've wired the battery to the motors (both at the same time) and they spin, and the board DOES send back any letter but 'f'. I can't think of what it could be, so any help would be appreciated.

CODE
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
//setup motor channel a
pinMode(12, OUTPUT);//initiates Motor Channel A pin
pinMode(9, OUTPUT); //inititaes Brake Channel A pin
pinMode(13, OUTPUT);//initiates Motor Channel B pin
pinMode(8, OUTPUT); //inititaes Brake Channel B pin

}

void loop()
{
if (Serial.available() > 0) {
char ch = Serial.read();
Serial.print("Received: ");
Serial.println(ch);
if (ch == 'f') //forward
{
digitalWrite(12, HIGH);//establishes a FORWARD direction in Motor A
digitalWrite(9, LOW); //Disengages the brake for Motor A
digitalWrite(13, HIGH);//establishes a FORWARD direction in Motor B
digitalWrite(8, LOW); //Disengages the brake for Motor B
analogWrite(3,255);//spins the A wheel
analogWrite(11,255);//spins the B wheel
delay(1000);//1 second delay
digitalWrite(8,HIGH);//engages the brake for B
digitalWrite(9,HIGH);//engages the brake for A
}
else
{
digitalWrite(13, LOW);
digitalWrite(12, LOW);
}
}
}

Now, if I unplug it from the computer and send the letter f via my Android, it seems to freeze, sending back RE and thats it. If I send any OTHER letter, it responds normally.

If I understand it correctly that RE is the initials of Received from the line → Serial.print("Received: ");
How do you have your Bluetooth connected to your Serial Port?
It could be a auto-reset caused by boot loader.Every time you initialize a serial communication the boot loader thinks it is an attempt to send a new firmware and the board suffer a reset caused by the boot loader.
Check how to disable auto-reset in your board.(in some board is connect a 120 ohms resistor between the reset pin and VCC)

As far as I can tell, yes, it's the initials of Received. My Bluetooth is connected to power, ground, TX and RX of the motor shield, which is, in itself, plugged into the Arduino. Nothing is plugged into my Reset port - and I'm not sure what you mean by VCC, sorry