理解しました!
どうやら私は
RunTimeプロパティのタイプをSystem.DateTimeからSystem.TimeSpanに変更するのではなく、代わりにカスタムIUserTypeを作成し、NullSafeSetを次のようにオーバーライドしました
public override void NullSafeSet(IDbCommand cmd, object value, int index)
{
var obj = (DateTime)value;
((IDbDataParameter) cmd.Parameters[index]).Value = new TimeSpan(0, obj.Hour, obj.Minute, obj.Second);
}