I'm not super familiar with the KL25 family (but am with several other Kinetis devices). Here's a couple of things to check.
Remove this line:
UART2->C4 = (UART2->C4 & ~UARTLP_C4_OSR_MASK) | UARTLP_C4_OSR(15);
That is for the low power UART's and not UART's 1-2.
I also 'or' the masks just so there is no confusion of the order of operations:
UART2->C2 |= (UART_C2_TE_MASK | UART_C2_RE_MASK);
A scope would go a long ways in figuring out what is wrong If you're seeing garbage in a terminal then it's likely a clock issue. The bus clock is usually (not necessarily) half the CPU clock for slower devices. If your CPU clock is running at 48 MHz you can look at the SIM->CLKDIV[OUTDIV4] register. That sets the bus clock. it should be 001 (for the OUTDIV4 section).
Also make sure both devices are using the same voltage.
Hope this helps!