They should actually just have an MMR system like chess. and have ranks be based on the MMR.

Like everyone starts at 1000. 0-1500 is bronze, 1500-2000 is silver, 2000-2500 is gold 2500-3000 is platinum, 3000-3500 is diamond, 3500-4000 is crystal, then have 100 rankings depending on mmr past 4000. So 4320 is rank 1, 4300 is rank 2, etc. but they are all considered to be 4000 mmr players.

Ranking should only consider 500 pts in MMR up and down, so if you're 1000, you'll be paired with people who are 500-1500. Maybe add a system where every 5 mins the pool is widened by 250. so after 5mins its 250-1750.

The system tries to balance the mmr on both teams so that the total mmr is equal or within 250 pts. The team that has the higher mmr pts will lose a bit more points if they lose, but gain the same pts as normal if they win. And reverse on the other team. The team with lower pts gains more pts if they win, but lose normal pts if they lose.

Only you can see the MMR you have. other players will only see your rank.