Hai fatto un sacco di preamboli col risultato di far perdere di vista il vero problema, per individuare gli elementi selezionati puoi fare qualcosa del genere
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim r As Integer = 0, fname As String = ""
For Each chditem As ListViewItem In ListView1.CheckedItems
If chditem IsNot Nothing Then
fname = percorso & "\" & chditem.SubItems(0).Text
stampa
End If
Next
End Sub