I assume you're using an indexed package that you specify in an uninstall action for this? If so, my suggestion is to not use that. It's never been 100% reliable. I've seen this problem for years now and as such stopped using that functionality. The problem I believe is that if any files within the application bundle change in any way from the original deployment, like an update, the index no longer sees them as files to be removed. I think the indexing uses more than simply the file name and path. It probably also compares the sizes and/or modification dates or something. So for example, if you bundle up Adobe Acrobat Reader DC and deploy it, if it gets updated later through Adobe's update mechanism or otherwise, files within the app bundle get changed and the index of your original package no longer matches up.
At least that's my theory but that could be entirely wrong. All I know is this leaving cruft behind after an uninstall has been a problem for years now, so I simply stopped using it.
Instead, I would consider a simple scripted process. Something like the following should be able to remove Self Service from a system
#!/bin/sh
rm -R "/Applications/Self Service.app"
If you wanted to, you could throw in a line that would force quit Self Service if it's open before it deletes it, but I don't know the specifics of when you plan on using this.