In your scenario, DayStartTimePicker.Value = SomeDateTimeValue;
is called in Loaded
event, which calls every time page opens, i.e. whenTimePicker
is closed and execution comes back to this page, so selected value is overwrites by old one. You must set default value in page constructor:
// page constructor
Dispatcher.BeginInvoke(() =>
{
// will be called in first frame render, i.e when page is loaded and builded
DayStartTimePicker.Value = SomeDateTimeValue;
});