Comparing Agent Jobs on Two Servers
I see from the comments that you've already given Compare-Object a try, but that really should be working.  Below is a working example showing this:

$SqlServer1Name = "SQL1"
$SqlServer2Name = "SQL2"

$SqlServer1 = New-Object Microsoft.SqlServer.Management.Smo.Server($SqlServer1Name)
$SqlServer2 = New-Object Microsoft.SqlServer.Management.Smo.Server($SqlServer2Name)

$SqlServer1JobListing = $SqlServer1.JobServer.Jobs | 
    Select-Object -ExpandProperty Name

$SqlServer2JobListing = $SqlServer2.JobServer.Jobs |
    Select-Object -ExpandProperty Name

Compare-Object $SqlServer1JobListing $SqlServer2JobListing |
    Where-Object {$_.SideIndicator -eq "&lt;="} |
    Select-Object -ExpandProperty InputObject


This will output all of the jobs that live on SQL1 and not on SQL2.  This comparison is by name only, not taking into consideration any other SQL Server Agent Job attributes.