Framework::CreateProgram(shaderList) deletes all the shaders in the list, so when InitializeProgram() tries to re-use the vertex-shader (by keeping it in the list) on line 35 it doesn't work.
The obvious fix is of course to recreate the shader. I attached a diff which changes GammaRamp.cpp to do this.
That aside, thanks for writing the guide! It's been great learning from it. :)