Solved with the aid of a reply on another forum - thanks mklement0
Just wrap the Start-Process in brackets and add .ExitCode and it works fine e.g.
$Result = Invoke-Command -computername MYREMOTEPC -ScriptBlock {(Start-Process "msiexec" -ArgumentList "/i C:\tmp\MYSOFTWARE.msi /quiet /norestart" -Wait -Passthru).ExitCode}
More info:
-PassThru instructs Start-Process to output a System.Diagnostics.Process instance representing the launched process, and given that -Wait is also used, its .ExitCode property can be accessed right away