Its open source, of course everyone can write his own client. But if someone changes the protocol in a way like "send 10% of all transactions to themselves" 51% of all miners would have to agree to use that protocol, too.
That isn't exactly correct.
Any breaking change must be supported by EVERYONE. Users, miners, exchanges, merchants, etc.
So if 51% of miners implemented that change those who disagreed could continue to use the "old/existing" Bitcoin where miners can't steal 10% of all coins. The 51% of miners would simply be mining worthless blocks which have no value.
As long as some users and miners continue to support the current protocol it will exist. What gets kinda meta is what is Bitcoin.
Say some miners decide to fork the protocol to keep the block reward at 50 BTC. Since this is a breaking change it doesn't really matter if 20% of miners support it, or 80%. The "51% check as in 51% attack" doesn't apply since each version of the protocol sees the other as completely invalid regardless of how much mining power supports it. Now lets make it extra confusing. Lets say roughly half of the users support this change and upgrade their nodes but roughly half don't. Some merchants support the "old" coins, some the "new" coins, and some support both (by implementing both nodes). The same applies to exchanges.
Essentially at this point you have to completely independent protocols. Which one is Bitcoin?

Obviously both camps will claim they are the real Bitcoin.