Похоже что фильтр и не работает, ибо обычный Deserialize будет столько же работать.
Пиши свой, который позваляет бегать по токенам и определять что делать с текущим.
Так разлагаются символы и utf это поддерживает. Т.е. идёт основной символ и дополнительные диакритические значки, вроде хвостиков и палочек снизу/сверху.