Ok so I seemed to discover my problem minutes after I made the post. I had the IsAsync attribute set to true on the binding of my SelectedValue and for some reason this caused the SelectedValue to be ordered. Not sure why though, but as soon as I removed the IsAsync=True everything was normal.
Was:
Was:
SelectedValue="{Binding Occurrence.Appointment.SelectedRows, Mode=TwoWay, IsAsync=True}" >
Now:SelectedValue="{Binding Occurrence.Appointment.SelectedRows, Mode=TwoWay}"
Hope this helps someone someday with similar problem.