Many of these words mean the same thing or, at least, cross over into each others territory. But just like English some of these are used in certain contexts that just can't be defined in strict language rules. Like in English you can say something is "very funny" but saying something is "very fun" sounds weird. "A lot of fun" is more natural, but "a lot of funny" is never said. These sort of rules you just have to pick up with experience.
I struggle with this too. I do know that many of these can vary. Here is my limited understanding: 너무 also has the meaning of too much or in excess. 정말 and 진짜 both mean really. 많이 means a lot. I believe 아주 is closer to 'completely' but isn't as common in spoken Korean, it's more of a written phrase. Don't get discouraged though! English has a lot of these types of words as well. Really, extremely, excessivly, too, super, etc. I would just try to pay attention when you hear them used and you'll get used to when to use each - or so I'm told :)
They are not interchangeable. The first two 매우, and 아주 can indicate varying degrees of "a lot". 너무 literally means "too much" and only means "very" in colloquial usage. 많이 literally means "many times" and shouldn't really be used to indicate "very". They may translate to similar definitions, but they have subtle differences between them.