Какой-то тип волшебства,
, если вы добавляете элемент в представление списка и назначаете для него группу G. элемент будет отображаться не на своем месте.
Теперь, есливы получаете группу, содержащую элемент (G), меняете ее имя на какое-то временное значение, затем меняете обратно на оригинальное имя, все будет отображаться ОК.
Поэтому вместо
listView1.Items.Insert(0, new ListViewItem("Test", listView1.Groups[0]));
делать
Dim LVI as new ListViewItem("Test")
listView1.Items.Insert(0, LVI)
LVI.Group = listView1.Groups[0]
Dim TempStr as string = LVI.Group.Header
LVI.Group.Header = "whatever"
LVI.Group.Header = TempStr