Ah, you're seeing finer issues than I thought, ok, that will need another level of code breakdown, where to start...
1) Adding system.DebugLog(CurrentMethodName) to the top of CalendarWindow.Update shows that it is called 5!! times during the window Open.
2) When pressing the arrows, there's multiple updates, which is what you're seeing. There are 2 update when you move one month and 4!! when you move across a year boundary.
Both of these problems should really be coded out but to get around the issue we need to do a little work. VMs will make this more visible as will hidpi, the more work that needs to be done, the more visible the problems are.
Getting the freeze on the window at the right time is a little tricky with ShowModal so I've Interfaced that and put the freeze in there. I had to do it this way to get around not being able to step into the framework at the required time, a little more thought might provide an alternative method but this is my current thinking at the moment.
I then wrapped the button < > clicks in freezes so we didn't have to consider refactoring the control, this will freeze during the entire duration of all updates.
I refactored AllowRedraw to only trigger on the first and last call so any recursion wasn't prematurely unfreezing on its way out of the recursion until it got to the last unfreeze which was allowed to take place.
I think that about covers it all.
I'm not being negative/nasty here but unfortunately most of all this boils down to quick/sloppy/untidy (call it what you will) code. You can get away with so many things on macos because everything is double buffered, you just don't notice things like this (the multiples updates per click). As Windows isn't double buffered by default you have to be a little more precise with things.
I've done two examples for you, one using the controls on a window and the other with the controls on a canvas. The later will not suffer from random mouse click-throughs to background windows as the canvas is being frozen rather than the window.
It sure would be nice if all this was taken care of in the framework.
Controls On Window
Controls On Canvas
You might need to do a little work to make these macos safe as I've not really been keeping track.