Write-Host writes a string representation of your object to the console and doesn't send anything down the pipeline. Filter using Where-Object and just allow it to be written to the Output stream.
$allDevicesObj | Where-Object {$_.hostname -eq 'DESKTOP-abc123'}
To get just the site you can pipe from where-object to select-object
$allDevicesObj | Where-Object {$_.hostname -eq 'DESKTOP-abc123'} | Select-Object -property SiteName