I designed a TM of the following language: {a^n b^n c^n | n E N0} Word of the language: abc, aabbcc, ...
Now I have to make a formal proof that this TM is working.
I understand how this TM works but I do not know how to make a formal proof of this. It would be great if anyone has got a good tip for me.

Proofs of program correctness are notoriously gritty work -- especially for models such as Turing machines where the internals of one part of the computation are not nicely isolated from internals of other parts of it.
Sometimes it turns out to be easier to change the program to something less efficient/elegant in order to support a simple proof.
Generally you'll probably end up with a sequence of lemmas of the shape
where "such-and-such" is a description not of a single concrete tape, but of a whole family of possible tapes that the machine will handle in similar ways.
These lemmas will build on each other for their proof; some of them probably need to be proved by induction over a parameter in the "such-and-such" description. At the end you should have collected enough lemmas that every possible input will match a lemma of the form
This would produce a reasonably rigorous proof; if you want a "formal proof" in some formal proof system (which I don't think you do, despite your wording), your only hope is probably to turn your rigorous proof into a computer program which generates that formal proof.