既存のファイルを開いて上書きしようとする場合など、既にストリームに何らかの内容が書き込まれている場合、書き込んだ後にSetLengthでストリームの長さも変更しないと以前の内容が残ります。 例えば、FileStreamで長さ16バイトのファイルを開いて8バイトのデータを書き込む場合、SetLengthでストリームの長さも8バイトに設定しないと、ファイルの長さは16バイトのままになります。

SetLengthメソッドを使ってStreamの長さを書き込んだ長さに合わせて変更する
Imports System
Imports System.IO

Class Sample
  Shared Sub Main()
    Using stream As Stream = File.OpenWrite("sample.dat")
      ' 現在のstreamの長さを表示
      Console.WriteLine(stream.Length)

      ' 書き込むデータが格納されているバイト配列
      Dim buffer() As Byte = New Byte(7) {&h41, &h42, &h43, &h44, &h45, &h46, &h47, &h48}

      ' bufferの8バイト分をstreamに書き込む
      stream.Write(buffer, 0, 8)

      Console.WriteLine(stream.Length)

      ' 現在の書き込み位置(8バイト目)をstreamの長さとして設定する
      stream.SetLength(stream.Position)

      Console.WriteLine(stream.Length)
    End Using
  End Sub
End Class