Hola Naz
 
Que buena descripción hiciste, te felicito, se va aclarando el panorama, ahora entiendo un poco más y creo que di en la tecla: 
para solucionar tenés que reemplazar el operador relacional "distinto de" (<>), por el "mayor que"(>), en la sentencia If, así:  
Código:
 If BD.Dt.Tables("IDF").Rows.Count > 0 Then
  Espero que con eso se solucione. 
En caso que no funcione, entonces por favor, con tu bbdd vacía, inserta las siguientes líneas de código, inmediatamente después de BD.Rellena...  
Código:
 MessageBox.Show(BD.Dt.Tables("IDF").Rows.Count.tostring)
MessageBox.Show(BD.Dt.Tables("IDF").Rows(0).Item(0).tostring)
  y que te quede así:  
Código:
 'Mostramos el siguiente ID que corresponde al usuario que estamos reguistrando
BD.Rellena("SELECT MAX(Id) FROM moviles", "IDF")
MessageBox.Show(BD.Dt.Tables("IDF").Rows.Count.tostring)
MessageBox.Show(BD.Dt.Tables("IDF").Rows(0).Item(0).tostring)
If BD.Dt.Tables("IDF").Rows.Count <> 0 Then
       TbID.Text = (CStr(CInt(BD.Dt.Tables("IDF").Rows(0).Item(0)) + 1))
Else
       TbID.Text = "1"
End If
Fila = -1
'Fin muestra del ID
  y cuéntame qué resultado arrojan los messageboxes, reitero con tu bbdd vacía 
Saludos cordiales.