When I was searching on Google I found a useful class which let us change the icon of any .exe file using the following line of code :
WindowsF
It sounds like the protection application is verifying that the contents of the file haven't been tampered with. Injecting an icon is definitely a form of tampering, and unless the protection software is updated to ignore it, it will always fail. Alternatively if you own the protection software you could update it to not strip the icons.