STM32L0 Low power UART-receiver reads the wrong data at high baudrate after MCU waking up
Wakeup from Stop mode using LPUART
  
  The LPUART is able to wake up the MCU from Stop modewhen the UESM bit is set and the LPUART clock is set to HSI or LSE (refer to the Reset and clock control (RCC) section.
  
  
  LPUART source clock is HSI
  If during stop mode the HSI clock is switched OFF, when a falling edge on the LPUART receive line is detected, the LPUART interface requests the HSI clock to be switched ON. The HSI clock is then used for the frame reception.
  
  
  If the wakeup event is verified, the MCU wakes up from low-power mode and data reception goes on normally.
  If the wakeup event is not verified, the HSI clock is switched OFF again, the MCU is not waken up and stays in low-power mode and the clock request is released. 
  
  


When the LPUART starts to receive data, the clocks won't be active immediately. HSI16 (high speed internal 16 MHz RC oscillator) typically takes 3.7 μs to start.*  

  

You can eliminate the HSI16 startup time by leaving it running during stop mode, if you really need to do so. Once the HSI16 is available, the LPUART itself has to activate, which takes up to 12 μs* as well:  



*The reference manual doesn't mention any startup times as they are specific to each individual part. You can find the actual values in the datasheet, the value here is for the STM32L051x6/8 and listed here only for illustrative purposes.

At 56 kbaud, the transmission period of one bit is 17.86 μs, which is barely long enough (still probably out of spec) for the LPUART to wake up before the next bit arrives and everything goes out of sync. This is why you can't increase the baud rate.

See "Determining the maximum LPUART baudrate allowing to wakeup correctly 
from Stop mode when the LPUART clock source is the HSI clock" (page 734, reference manual)