Thanks for all the quick responses on this forum!
2 things needed to be done.
1. Specify charset (encoding) as Dan mentioned. The correct syntax for doing that is below.
2. Avoid use of Powershell variable. It turns out Powershell is trying to parse the results if the result of the rest call is stored in a variable, and it corrupts the result. To avoid this, you take the result of the REST call directly to a file with an -OutFile parameter
$RequestHeaders = @{"Accept" = "application/zip;charset=utf-8";"Content-Type" = "application/json";"X-SAP-LogonToken" = $LogonToken}
Invoke-RestMethod -Method GET -Uri $RequestUri -Headers $RequestHeaders -OutFile "d:/temp/report.zip"
So it works great! Thanks Eric and Dan!
There are even some Powershell methods to extract the zip file if need be. I may also implement that. If so, I'll update this post with my code.