Legally speaking it's absolutely a mess.
First of all we have to take under account that there is no legal precedent and until that happens all answers are going to be more or less hypothetical, limited by knowledge and interpretations of said knowledge.
Before we can even start talking about the contributors we have to understand that the license only goes for the initial code and it can be licensed only by the copyright owner. It is assumed that the contributions go by the same license but by law that's not necessarily the case.
While it is true that the contributors have their own copyright, it doesn't mean that the license of the project can't be changed. It depends entirely how someone (and legally speaking - how some judge) interpret the law. Because it could be argued either that the contribution was for the project or it was for the license. In either case, both the license can be changed and contributions could be withdrawn any time. Justification for the changing of license is that the copyright holder can do just that and it can be assumed that the contributions were for the project. After all, it's written in the license who the copyright holder is.
The reason for Contributor License Agreement is that for most license cases the contributions are not licensed at all. Remember, the license was only for the initial code. So in order to stop contributors to withdraw their unlicensed code (meaning they have copyright), they make them sign these agreements, in order to get them under a license too.
A) It depends how significant your changes were not what license it was under. Few changes here and there for the most part would mean the same license. On the other hand, if you rewrite most of it, change the functionality of it so it's hardly recognisable, and soon is going to change even more, then you could even write yourself as the copyright owner and license it as you see fit. This is true regardless of the original license. Some people try to mislead you to think like public licenses are somehow stronger or better than permissive licenses but the very opposite is true. The very same people think that if they make few changes to a code that they magically own the copyright - while that's outright illegal. As rule of thumb - permissive licenses will lead you to less legal trouble than restrictive ones. Besides many other, that's one legal reason why most new open source projects choose permissive licenses. Since MIT license is the most permissive, people tend to choose that.
B) What you are talking about here has absolutely nothing to to with law nor the license. MIT license does not require to attribute contributors. The reason many projects with permissive licenses do this is ideological. These people are liberal and democratic in nature. The sort of people who try to attribute even CC0 licensed authors. One reason they do this is to show their gratitude since permissive licenses do not require anyone to contribute to begin with. Another reason is to express the equality between the contributors and the initial copyright holder. It's just a nice gesture because legally speaking this attribution has no meaning since the license already gives everyone all the liberties. It has more to do with community spirit than anything else.
C) If you are planning to fork a MIT licensed project that has lot of contributors listed then you would be safest if - you only add yourself as a contributor. If even that. Do not change the license! Do not erase any names from the contributor list! Regardless how significant your changes are. This is not for legal reasons but for your own safety. Because while most of them are really nice and friendly, there are always some extreme anarchists and hackers in the bunch. Besides, MIT license gives you all the liberties you can ever imagine and there is no reason why to tick off names from the list or do anything like that. (Legally speaking we are talking about one project with one license + lots of contributions with each one of them being copyrighted, but for the meanwhile you could count as part of the same entity - While correct, I don't think this answer is going to help you much in your situation.)