Basically, the $SearchResults are getting overwritten on each loop, so you probably only have the results of the last account in the group.
Remove the $SearchResults and just pipe the results of the foreach loop into a Select-Object or Export-CSV.
Remove the filter to start with, and use Select-Object to display the ArchiveStatus and RecipientTypeDetails and have a look at the results on screen.
I've not seen that before, where you know the identity of the mailbox, and then use a filter.
Perhaps remove the filter from the Get-Mailbox command, and pipe the results of the Get-Mailbox command into Where-Object and filter client side on ArchiveStatus and ReceipientTypeDetails instead.