Adding list of customcontrols
As you seem to specifically ask for: Is there a better way for calculating the position of the user controls that are being added? I don't like the way the if/else looks but I am not sure how else to do it.

My answer will address only this. You can make a better use of the variable and instead of -1 use Top + 10 and later = Bottom + 2. The code:

    int nextTop = this.Top + 10;

    foreach (var item in MonthDisplaying.Days)
    {
        DayView dayDisplay = new DayView(item);

        dayDisplay.Top = nextTop;

        nextTop = dayDisplay.Bottom + 2;

        this.Controls.Add(dayDisplay);
    }