I don't quite understand the purpose of the original calculation.
I suggest capturing the result of both the Get ( DesktopPath ) and the Substitute ( Get (... functions on both systems and comparing them to see what is different.
One possible issue that comes to mind is that substitute is case sensitive. so if you get "desktop" or DESKTOP returned by get(DesktopPath), the substitute function won't substitute any text here.
Have you checked which error-code is returned? Add a dialogbox with just: Get ( LastError ) in it and see what is returned. I suspect that you'll get a 717, 718 or 719 error.
Change the content of your variable to:
If ( Abs ( Get ( SystemPlatform ) ) = 1 ; "filemac:" ; "filewin:" ) & Get ( DocumentsPath ) & "export/amazon_custom_keywords_complete.xsl"
and then change your export-scriptstep to use that variable in the "file" parameter instead of the "calculation" parameter.
Try: Substitute( Get(DesktopPath); "Desktop/"; "Documents/export/amazon_custom_keywords_complete.xsl")
Since your original post, a bug has been documented that might be part of the problem.
For More Information see: FMPA 14: Save Records as PDF Script Bug - Generates Error
This is one of many acknowledged bugs that can be found in the Known Bug List thread here in the Report an Issue section of the forum.
It can also be downloaded as a database file from: https://www.dropbox.com/s/jt09b82i0xijbu3/FMP%20Bugs.zip