Why updating only a part of all neural network weights does not work?
If you're only changing the weights in the last layer, then effectively you have a neural network with a single layer, preceded by some preprocessing step. Single-layer neural networks (also known as perceptrons) aren't so powerful.

Why isn't the network learning anything?  It doesn't learn much because it can't -- a single-layer network can't learn complicated functions.