In arduino, set it to 600BAUD, then turn of double speed. (the baud rate will then half)
Serial1.begin(600);
UCSR1A &= ~(1<<U2X1);
Basically, the BAUD rate generator can only store 12bit values. By default Arduino turns on double speed, which means that the generator value is:
UBRRn = fcpu/(8*BAUD) -1
For 300baud, this is
UBRRn = 16000000/(8*300) -1 = 6665.
This is a 13bit number, so cannot be stored. (If you try and save it, it will be truncated to 2569 = 6250BAUD, hence you have a problem)
By disabling the double speed bit, the calculation becomes:
UBRRn = fcpu/(16*BAUD) -1
For 300baud, this is
UBRRn = 16000000/(16*300) -1 = 3332.
This nicely fits into 12 bits, so you will be able to easily generate 300 BAUD.