hc-05 garbled AT command response

I am using an HC-05 as described in this link

I have successfully gotten it into programming mode. It will respond to AT commands but the response is garbled. The commands do work, so if I send AT+RESET it resets the BT module and kicks it out of programming mode. I have tried changing the baud rate to every available one but it only responds on 38400. I have made the hardware serial and software serial baud rates the same I have even made the com port on the PC the same 38400 baud rate but it is always garbled. See attached screen shots for an example

Arduino code

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX

void setup()
{

  Serial.begin(38400);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
}

void loop()
{

  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())
    BTSerial.write(Serial.read());
}

This might be down to software serial, which gets unreliable at that speed