The web platform installer has a dependency on IIS so make sure this is installed and enabled. In my case IIS was throwing errors about netfx40_iis_schema_update.xml is not well formed. Since this was just a build box without a dependency on IIS we had no idea this was an issue until trying to run this installer.
Based on this post I was able to get IIS functioning again by running the aspnet_regiis command. With IIS running correctly the web platform installer ran in fine.
Diagnosing this issue was a little difficult due to the general nature of the 1603 status code simply representing any windows installer error. Unfortunately the web platform installer was not logging correctly to the AppData folder but I was able to get a log by manually running msiexec.
msiexec /i WebPlatformInstaller_amd64_en-US.msi /L mylog.txt
command allowed me to specify a log file and the log gave me a little more information about the issue.
CustomAction IISExecuteCA returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 12:03:02: InstallFinalize. Return value 3.
Action 12:03:02: Rollback. Rolling back action:
This was enough to point me in the direction of IIS being the issue and I'll definitely be using msiexec more in the future for installation problems when the eventlog fails to report what I need.