Debugging Neural Networks
There are so many ways to go wrong with a neural net that it's going to be difficult to debug. Also, to address your intuition, each additional hidden layer makes learning much harder. With that said, here are some possibilities:


You have added weight decay. Adding more layers adds more weights which increases your regularization cost.
The problem is simple enough that a model with a single hidden layer is sufficient. Adding more hidden layers makes it harder for the network to learn (harder optimization problem).
The optimization method is not doing a great job (I prefer climin to scipy.optimize).
You are using the sigmoid/tanh activation function. The sigmoid function causes the vanishing gradient problem which makes learning hard with more layers. Try using the ReLu function.


Training neural nets takes a lot of practice, luck, and patience. Good luck.