I've replicated the issue using your example. The problem seems to be with the RecurrenceRule.TryParse() method. I added this event to your example:
protected void RadScheduler1_AppointmentInsert(object sender, AppointmentInsertEventArgs e)
RecurrenceRule.TryParse(e.Appointment.RecurrenceRule, out rrule);
var blah = e.Appointment;
Now if you look at the Occurrences property of the rrule that's created, it converts the times to UTC but keeps the days the same. For example, if I schedule the first day as 12/18 7pm, it converts the first occurrence to 12/18 1am. If you save this to the database it will be incorrect when showing it again in the scheduler because when it converts it back to Central Standard Time it converts the entire date and time to 12/17 7pm.
I should note that it's a requirement of my project to save each occurrence to a database. I'm not able to use a master occurrence's schedule to generate the rest of the appointments on the client.