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
Your application's icon can be added to this executable with a tool like Resource Hacker. and visit http://georezo.net/jparis/MI_Enviro/Icons/adding_w_RH.htm
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.
I just experienced the same issue with a 7zip Self-Extractor exe.
Updating the icon of the 7zS.sfx (instead of the exe) before creating the Self-Extractor exe does the trick and the exe is not corrupted.