Да, вы создаете список изображений снова и снова.И каждый элемент имеет один и тот же imageIndex, 0. Таким образом, элементы могут иметь только один и тот же значок, последний добавленный вами.Это решит проблему:
Public Shared Sub FulfillListView(ByVal Icon As Icon, ByVal Item1 As String, ByVal Item2 As String, ByVal sender As Object, ByVal e As System.EventArgs)
If vehicles_prod.OpenOrdersLB.SmallImageList Is Nothing Then
vehicles_prod.OpenOrdersLB.SmallImageList = New ImageList
End If
vehicles_prod.OpenOrdersLB.SmallImageList.Images.Add(Icon)
Dim SubItem As New ListViewItem("", vehicles_prod.OpenOrdersLB.SmallImageList.Images.Count - 1)
'' etc...
Но не делайте этого, если просмотр списка содержит много элементов.Список изображений станет довольно большим, возможно, с большим количеством дубликатов.Что делает это медленным.Явное управление списком изображений становится важным.Вы можете заполнить список изображений заранее с дизайнером, может быть, это уместно.