ShaderProgram do not work after removeChild

I’m using a custom Shader written by me.
The problem is that as the game loads, I create all the sprites and leave a reference in memory than at some point in the program I remove all the childs from the main node and try to reattach the childs again later.
But as I attach again the sprites, my ShaderProgram do not work.
Is this a normal behaviour. Which is the best way to fix this ?

I initialize the shader program in the InitWithTexture() method of the sprite as the sprite is created.