時刻の種類(Kindプロパティの値)はインスタンス作成時に設定された後は一切変更することができません。 ですが、DateTime.SpecifyKindメソッドを使うと日時部分はそのままで、Kindプロパティの値だけを指定した値に変更したDateTimeを取得することが出来ます。

DateTime.SpecifyKindメソッドを使って時刻の種類を変更する
Imports System

Class Sample
  Shared Sub Main()
    Dim a As New DateTime(2013, 4, 1, 15, 0, 30, 123, DateTimeKind.Local)
    Dim b As New DateTime(2013, 4, 1, 15, 0, 30, 123, DateTimeKind.Utc)
    Dim c As New DateTime(2013, 4, 1, 15, 0, 30, 123) ' DateTimeKind.Unspecified

    Dim kinds() As DateTimeKind = New DateTimeKind() { _
      DateTimeKind.Local, _
      DateTimeKind.Utc, _
      DateTimeKind.Unspecified _
    }

    For Each kind As DateTimeKind In kinds
      Console.WriteLine("SpecifyKind({0})", kind)

      For Each dt As DateTime In New DateTime() {a, b, c}
        ' SpecifyKindメソッドでKindの値を変更したDateTimeを取得する
        Dim dtNew As DateTime = DateTime.SpecifyKind(dt, kind)

        Console.WriteLine("{0} {1,-12} -> {2} {3}", dt, dt.Kind, dtNew, dtNew.Kind)
      Next

      Console.WriteLine()
    Next
  End Sub
End Class
実行結果
SpecifyKind(Local)
2013/04/01 15:00:30 Local        -> 2013/04/01 15:00:30 Local
2013/04/01 15:00:30 Utc          -> 2013/04/01 15:00:30 Local
2013/04/01 15:00:30 Unspecified  -> 2013/04/01 15:00:30 Local

SpecifyKind(Utc)
2013/04/01 15:00:30 Local        -> 2013/04/01 15:00:30 Utc
2013/04/01 15:00:30 Utc          -> 2013/04/01 15:00:30 Utc
2013/04/01 15:00:30 Unspecified  -> 2013/04/01 15:00:30 Utc

SpecifyKind(Unspecified)
2013/04/01 15:00:30 Local        -> 2013/04/01 15:00:30 Unspecified
2013/04/01 15:00:30 Utc          -> 2013/04/01 15:00:30 Unspecified
2013/04/01 15:00:30 Unspecified  -> 2013/04/01 15:00:30 Unspecified

このメソッドはDateTimeの日時の部分は変更せず、Kindプロパティの値のみを変更します。 つまり、変更に際してUTCとローカル時刻間の時差は考慮されません。 そのため、このメソッドの主な目的は、DateTimeから時刻の種類の情報を切り離したい場合、あるいは時刻の種類が設定されていない(Unspecifiedな)状態のDateTimeに時刻の種類を設定することになります。

一方、UTCとローカル時刻間での時差を考慮した上で変更したい場合はToUniversalTime・ToLocalTimeメソッドを使います。