UART communication not working with higher baud rate values?
I'm guessing that the micro can't hit the higher baud rates accurately enough given the rather low clock speed of 8 MHz.  This illustrates one of the drawbacks of blindly using a canned library.  Your library apparently has no means to tell you what baud rate it actually ended up with and at run time it's too late to do anything about it.

Most UARTs need a clock at 16x the baud rate.  At 9600 baud, that means the UART needs to get 153.6 kHz out of its baud rate generator.  If you're starting with 8 MHz and constrained to only divide that by integers, then the best you can do is 52, which comes out to a 16x clock of 153.8 kHz, and a baud rate of 9615.  The system will work fine with that 0.16% error, and you aren't noticing it.

At 115.2 kBaud you need a UART clock of 1.843 MHz.  That is 8 MHz / 4.34.  The closest you can come is divide by 4, which yields a UART clock of 2 MHz, and a baud rate of 125 k.  That is 8.5% error, which is too large to allow the system to work.

When you need high baud rates, and especially when you want to keep the clock of the microcontroller low, you usually want to use a baud rate crystal, like 7.3728 MHz.  That is deliberately a multiple of all the common baud rates times 16.