I had learnt the difference ages ago, but ha forgotten it since.
I asked my friend Chie, and she said:
しなければいけない -> when you think that there's no other choice
しなければならない -> when you've been told to do it, or when it's rather a burden to you.
I think (as often) that looking at words can help.
In the いけない proposition, you say basically that "you can't go forward", and that's quite subjective.
In the ならない case, it rather seems that "it cannot be", which is independent from your will.
There is a slight shift that may be a worthy nuance.
However, I really doubt the average Japanese person distinguishes them in practice.
Also, しなければならない seems less colloquial than しなければいけない according to this, and other sources say that it is more used in legal documents.
Edit:
For the difference between なければ and なくては, I'd just use basic grammatical inference.
In the なくては, it's just a suspensive form (with a は for contrast, because you have a negation coming behind).
Think of the positive version: "してよい", literally "I do this and it's good".
You'd have a similar nuance: "I don't do that, it's bad".
Quite a weak causal relation.
On the other hand, the えば form enforces a stronger relation, an "if" or a "when" that means that has this stronger implication nuance.
At least, that's how I understand it.