Since you've sorted the data in the combobox you can't use it's ListIndex to find the row of data you want.

You'll need some other method.

Try this which works with your sample data as long as you change the BoundColumn of cboFirstname to 1.
Private Sub cboFirstName_Change()
Dim row_nunber As Integer

    If cboFirstName.ListIndex <> -1 Then

        row_number = Application.Match(cboFirstName.Value, Worksheets("Address Book").Range("A:A"), 0)
        With Worksheets("Address Book")
        
            TextBox1.Text = .Cells(row_number, 1).Value

            TextBox2.Text = .Cells(row_number, 2).Value

            TextBox3.Text = .Cells(row_number, 3).Value

            TextBox4.Text = .Cells(row_number, 4).Value

            TextBox5.Text = .Cells(row_number, 5).Value

            TextBox6.Text = .Cells(row_number, 6).Value

            TextBox7.Text = .Cells(row_number, 7).Value

        End With


        cboFirstName.SetFocus

    End If

End Sub