At Create of a TsMonthCalendar one of the properties that gets initialized is ShowSelectAlways.
That results in a call to CalendarUpdate(True). But at Create time there are no valid dates. And CalendarUpdate will cause calls to TsCalendGrid.SelectCell where the date (NewDate) that is passed to OnAcceptDate therefore will be 0.