I think this line is wrong:
ManualTime editRecord = listHoursLog.SelectedItem as ManualTime;
You need to convert the selected item into a ManualTime, not cast it. The cast will always return null, hence the error.
If the selected item is a string, then you could write a Parse() function in your ManualTime class to convert a string, something like the reverse of your ToString() functions.