You're only populating the DataGridView for individual checked items ... the contents of DataTable dt change each time you go around the loop.
You would be better off building up a list of the checked items first and using that list in a single sql statement e.g. ...
Dim statList As String = "("
For item As Integer = 0 To CheckedListBox1.CheckedItems.Count - 1
statList += "'" & CheckedListBox1.CheckedItems(item) & "',"
statList = statList.Substring(0, statList.Length - 1) + ")"
Dim sql = "select * from Status where Stat in " + statList