Hola,
Tal vez podrías echar un vistazo intentar averiguar de qué error se trata, luego de ejecutar la
función "ShellExecute()". Sin embargo, me temo que el problema pueda venir el propio programa que se trata de instalar: tal vez no se "deje" instalar, ignoro porqué razón, pero si, como dices, el programa se ejecuta y se cierra... no sé hasta qué punto puedes controlarlo, puesto que se trata de un programa "externo". ¿Qué pasa si ejecutas el ejecutable tú mismo desde Windows? ¿Funciona bien?