@lotonyni When you're looking at your Policy in your JSS console, make a note of the the Policy ID in the URL for that page. Using that ID, and a terminal session on a machine that the policy fails to complete via Self Service, issue the command
sudo jamf policy -verbose -id <THE_ID_YOU_FOUND>. That will run the policy in verbose mode, and hopefully give you an idea why it's hanging up.
Not sure if you've been able to troubleshoot further. By chance, are you only encountering this problem with a single package (other packages install via Self Service just fine?). If so, is it possible that you started to install this package and clicked cancel (or the install was interrupted midway?). I think this issue may occur as a result of canceling a package mid way via Self Service, and other subsequent tries will fail (probably because there is a partial package downloaded). I think modification of the policy may cause the entire policy to re-fresh and re-run (in the event that the package changed). Just a theory.