If the data are wrong, remove them regardless of whether or not they are outliers. If a data point is right but it is an outlier and you remove it, your analysis will be biased. This might even be the reason why your prediction desynchronizes with the trend. Transforming outliers is just a less extreme way of deleting them that is also prone to bias.
The key point of the Kalman Filter is that it should be able to use the response history to inform the system state, but it doesn't seem that you are doing that. That means that at time $t$ you can use all of $t-1$ to generate predictions for $t$ and onward. Later, at time $t+k$ you can use all of $t+k-1$ to generate predictions for $t+k$ and onward.
So at the dotted line, are you showing your system forecasts for that time onward unconditional of the later response, and then superimposing the observed system state afterward? In that case, it's not surprising to see the forecast lose fidelity, that's the inevitable outcome: you just have to be clear about the target range for forecasts... nobody can predict the entire future in a statistical model.
The weights for the lagged response inputs are usually quite high, the best prediction of a system state is often the state it has most recently been in. When you run a forecast way out in the future, it is prone to desynchronizing. One way you can enforce a strictly seasonal adherence is to use the actual season as covariate inputs.