I had to resort to Interop code, because MonthCalendar.UpdateBoldedDates recreates the window, and messes up the current date ranges.
First, declare some Interop functions and data structures
Const MCM_SETDAYSTATE As Integer = &H1008
<StructLayout(LayoutKind.Sequential)> _
Structure MONTHDAYSTATE
Dim dw As [...]