As an general advice, I recommend you to first look up Japanese-Japanese dictionaries (online ones are usually enough) if you have questions like this, because native speakers don't really know what exact differences there are between synonymous expressions. Maybe they can give you some answer based on intuition, but you have no garantee whether they are really right.
Now, I found your question interesting, and checked some online dictionaries, and here's a quick answer:
添削する - this verb doesn't concern individual mistakes or errors to be corrected, but rather describes the whole process of correcting. And this process is usually conducted by a teacher or someone who has more experience / knowledge than you. So maybe it's possible to say that it's a bit more like "proof reading" than just "correcting".
Basically, they are synonymous, and unlike 添削する, they are not about the whole process, but usually relate to concrete, individual mistakes or unprecise statements.
The most important difference seems to be that 訂正する can only be used when there really is at least one mistake to be corrected (and thus usually relate to something written or expressed), while 修正する could be used even when there's no mistake, but only something which should be "improved" or "modified" (and thus often used in regard with "plans" or "strategies"). To illustrate the difference, you can say: 軌道修正 but not 軌道訂正. 軌道 literary means "orbit", but is often used in the sense of "business plan/strategy".
Now, some concrete examples which could be useful for your daily use:
If you have written a text in Japanese, someone checked it, corrected or commented it and you want to thank him or her, then you should say: 添削してくれてありがとうございます。Because what you thank for is the effort, the whole process of correcting.
But if, for example, you are having a conversation with someone, and he or she corrects your individual mistakes, then you should say: 訂正してくれてありがとうございます.