From what I understand, you want to highlight the next 10 days in the month calendar for every month.

If that's right then, I think what you really need is the MonthlyBoldedDates instead of BoldedDates
And then you don't need the TransactionMonthCalendar_DateChanged event handler and the tracking of last selected month etc.

So only this much:
vb.net Code:
  1. Protected Sub LoadMonth()
  2.     Dim TransactDates As New List(Of Date)
  3.     Dim dt As Date = TransactionMonthCalendar.SelectionRange.Start
  4.     For i = 0 To Math.Min(dt.Day + 10, 31) - dt.Day
  5.         TransactDates.Add(dt.AddDays(i))
  6.     Next
  7.     TransactionMonthCalendar.MonthlyBoldedDates = TransactDates.ToArray
  8. End Sub
  9.  
  10. Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  11.     If Not DesignMode Then
  12.         LoadMonth()
  13.     End If
  14. End Sub
  15.  
  16. Private Sub TransactionMonthCalendar_DateChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles TransactionMonthCalendar.DateChanged
  17.     ' not required
  18. End Sub