This command Get-GPOReport -All Type XML does put all the info I need into an XML I'm just not sure how to parse it and pull out what I need.
So, what info do you need from the XML?
Regardless of what you need, you can loop through all GPOs then get the report for each one using Get-GPOReport -Name abc, instead of using Get-GPOReport -All. From your example code, here’s how it would work:
$allGPOs = Get-GPO -All
foreach ($gpo in $allGPOs) {
[xml]$gpoReport = Get-GPOReport -Name $gpo.DisplayName -ReportType Xml
# Output the SOMPath object
$gpoReport.GPO.LinksTo.SOMPath
}