Can somebody explain to me the difference in usage of these three forms. Sometimes it feels as if there are cases where they are interchangeable. If you could add also some examples it would be extremely helpful.
I tend to remember N＋にしては as "even though (it is) N", while I tend to remember N＋の＋わりに（は）as "considering N". Of course, both can be translated "for", but this distinction helps me a little.
Clearly, both phrases express something unexpected. They are sometimes interchangeable, but にしては needs to point directly to the characteristic you are talking about, while わりに can talk more abstractly.
For example, both にしては and のわりに are OK in the following sentences, as January is a specific concept by which you can think about the typical weather:
１月にしては暖かい朝だ。 "Even though it is January..." OK
１月のわりに暖かい朝だ。 "Considering it is January..." OK
For January, it is a warm morning. (i.e. I am finding it warmer than I might expect for a January morning).
However, the following sentences for にしては are ungrammatical **.
** 彼は年齢にしては元気だ。"Even though he is age..." ？？
彼は年齢のわりに元気だ。 "Considering his age..." OK
He is lively considering his age.
** 田中さんは身長にしては、軽すぎじゃない？ "Even though he is height..." ？？
田中さんは身長のわりに、軽すぎじゃない？ "Considering his height..." OK
Considering his height, isn't Tanaka too light?
However, if you replace e.g. the 年齢 with a concrete age, both are fine:
彼は６０歳にしては元気だ。"Even though he is 60..." OK
彼は６０歳のわりに元気だ。 "Considering he is 60..." OK
For a 60 year old, he is lively.
Both にしては and わりに can also be used with verbs; I think they are essentially interchangeable in these instances. Again, both can be used in positive or negative situations.
ダイエットをしているにしてはよく食べる。"Even though you are on a diet..." OK
ダイエットをしているわりによく食べる。"Considering you are on a diet..." OK
You eat a lot even though you are on a diet.
You eat a lot considering you are on a diet.
You can use わりに with い- and な-adjectives; you can't use にしては. The formation is （いadj）い＋わりに and (なadj)な＋わりに.
Considering it is expensive, this sushi is bad.
Considering it is famous, this restaurant('s food) was not delicious.
There is another use of わりに, which is just to show the gap in expectation without providing the justification. Just don't append the noun which provides the basis of the expectation. For example:
Today, it is cooler than I expected.
(The food) was less delicious than I expected.
〜くせに：although 〜, despite 〜 is quite different. It expresses annoyance/criticism/anger, and can be quite rude. It is like a "negative" 〜のに. So circumstance will usually make it clear when this is (in)appropriate.
できるくせにやろうとしない。 Although you can do it, you don't even try!
Finally, this post Usage of くせに and わりに in the following sentence interestingly notes an interesting difference between わりに and くせに, in that わりに works only when talking about proportional claims/factors (e.g. age) rather than something (ostensibly) binary, like gender.
Apologies if I missed something; there's quite a lot there... but hope that helps!