You've essentially covered all the bases. The part you're proposing to use covers you for electrostatic shock, arc faults, and other surges. It's more than fast enough for a UART interface.
High series resistance won't damage your drivers (quite the opposite - it limits current!) but it will cause slow rising/falling edges due to the low-pass filter formed between the series resistance and the parasitic capacitance and inductance in the lines. On the other hand, including some series resistance will help moderate the dI/dt at rising and falling edges, which can help limit ringing/overshoot on the line and reduce conducted emissions. The exact resistance value you use depends on the amount of parasitic capacitance and inductance you're expecting, and the required rise/fall time for the signal.
The optimal approach is to use a pair of series resistors in the following configuration:

simulate this circuit – Schematic created using CircuitLab
The two resistors have different functions. R1 limits the current through the clamping diode, sharing the power dissipation and reducing the chance of failure in short scenarios. However, the clamping voltage will almost certainly exceed the voltage at the MCU pin, so without R2 you'd have something like 6V directly connected to your MCU, and a large current will flow in that direction. R2 acts to moderate that current and reduce the voltage apparent on the MCU pin during a fault condition.
If you use a resistor with a low power rating (e.g. 1/8W) for R1, this can act as a makeshift fuse in short scenarios, causing the faulted signal to be disconnected when R1 melts. You probably don't want this in a consumer product, but for a hobbyist product it can be a good approach.
For 115200 baud UART you might consider 100Ω for both R1 and R2. On a 12V short condition you'd expect to see \$\frac {12V-6V} {100\Omega} = 60mA\$ through R1 and the clamping diode, which is \$(60mA)^2 \times 100\Omega = 360mW\$ dissipated in the resistor. On a 1/4W resistor it should last a few seconds before failing.
In terms of layout, make sure you route your TVS package close to the expected source of the fault (e.g. the connector) as possible, with short traces, and provide a good local connection to ground.
In more extreme environments you might consider optical isolation, but that'd be overkill here.