Açıkcası bu kadar uğraşmak yerine listboxın items ile ilgili özelliklerini araştırsan sorunu çözmüş olurdun.

listebox ta selectedItems özelliği mevcut. Eğer 1 den fazla kayıt seçip o kayıtları almak istiyorsan

listBox1.SelectedItems özelliği collection olarak sana result verir. herhangi bir döngü ile bu resultset içerisinde dolaşarak seçilen verilere erişebilirsin.

ListBox a vermiş olduğun dataSource verisetini globale alıp. listboxın selectedItems özelliğini kullanarak globaldeki dataSource ile işlem yapmalısın.
Kurgunu değiştirmelisin her kayıt için veritabanından sorgu yapmana gerek kalmaz.