The one way to do this that I could see is to include both the new keyboard and the old one and if someone fails to unlock with the new one auto report that to Apple (not the code, just that the unlock failed and that the keyboard might be the problem), then auto revert to the old keyboard on the next unlock attempt...
You basically can't ever remove an available character.
That includes emojis if they're allowed in IOS passwords.
The iOS emoji selector is close in UI/UX already, but the search is restricted to the emoji range of Unicode.
Or wait until a future OS version that will not support any device currently in existence.
The long tail of stupid edge cases is very long indeed.
Then you wait. Then you roll out a version where the new functionality is flipped on by default, but where you still allow to explicitly toggle to the old one. Then you wait some more.
And then - only then - you roll out a release where the old functionality has been removed entirely.
There should be migration taken into consideration that is kept to any previous version allowed to be upgraded from.
If allowing that character in the first place was a mistake, then Apple has pushed the consequences of their mistake onto the users instead of owning the mistake and keeping that character available forever on existing devices.
Just have an automated keyboard test for every new release to ensure those characters aren't broken.
If you wanted to reduce the size of the charset, you'd basically create a transition plan, and ask everyone in the world with a passcode to set a new passcode and validate that against the new charset/rules. A company that can perfectly transition the world from x86 to ARM can surely manage that.
From what I understand, the problem wasn't with typing characters actually used in the Czech language such as á, ř or ů. The problem was with typing the ˇ character by itself, which is normally encoded in Unicode as U+02C7 (CARON), but there also is a combining version (U+030C, COMBINING CARON), which is what gets printed if there is no precomposed character (e.g. š is both U+0161 and U+0073 U+030C). There is a thing called Unicode normalization that makes "identically looking" strings actually use the same codes, so maybe it was that thing that changed a bit (maybe even somewhere else and not in the lockscreen/keyboard logic), or they could have just removed the ability to type ˇ by itself altogether since it's not something actually used in any language or writing style and most often comes up as a result of a typo.
Your touch screen stops working. You want to dump the data by plugging it into the computer. To do that, you need to click "approve" or "trust" or whatever on a touch screen. A touch screen which.... stopped working.
We have definitely moved much, much too far towards security on the security vs. convenience tradeoff. We need a "I am not a human rights activist, I neither understand nor need all of this stuff" mode.