I cannot say I understand exactly what is happening, but it seems like it is another x64 annoyance.
If you go into the registry under:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\0\Command
And change the value of "(Default)" from the System32 path to a SysNative path it should work correctly in XY but seems to break WE.
I would think you should be able to get it working in both by adding entries under:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes
but I'm not having any luck with my attempts, so I might be flat out wrong.
EDIT: A kludgey fix would be to add a second "Run with Native PowerShell" command that would work in XY but not in Windows Explorer.
To do that in the registry under:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\
- Create a new key; its name doesn't seem to matter but I went with "1".
- Under our new "1" key change the value of "(Default)" to whatever you want displayed in the context menu. I'm hungry and called mine "Taco", but "Run with Native PowerShell" might be more informative.
- Under the "1" key create a new key named "Command".
- Under "Command" change the value of "(Default)" to the SysNative version of the value of ".\0\Command\(Default)".
Now when you right click a PS1 there will be two "Run with ..." commands one that works in 64-bit programs and another that should work in 32-bit ones (though using the 64-bit PowerShell not the 32-bit one).
There is probably a better, or at least cleaner, solution, but this is the first one I stumbled upon.