It seems that the general consensus is that Ferrothorn should be A rank, and i agree with this. Ferrothorn in rain is one of the best defensive Pokemon in OU, if not the best, as well as the best hazard setter together with Deoxys-D. While it is true that many offensive Pokemon can deal huge damage to it, if not OHKO it, they all have trouble coming into it. Which means that all that Ferrothorn needs against an offensive team is one free switch, and then it starts to get really frustrating for the opponent to deal with. With SR down, Leech Seed + Protect is a nightmare to deal with. Any choiced Pokemon that tries to force Ferrothorn out fails miserably, while getting its health leeched. Any set-up sweeper has to take SR + 2 rounds of Leech Seed (36% of its life) if it wants to come in against Ferrothorn, and set-up. And you can easily go to your check, which will get healed too. Not to mention that Ferrothorn murders the most common spinner found in offensive teams, Starmie, which means that Ferrothorn has no difficulty at all keeping SR on the field, preventing many dangerous pokes, such as Dragonite, Volcarona, and Genesect from getting too many switches. Finally Ferrothorn is one of the best Dragon checks in the game, both physical and special, and in rain cannot be OHKOed by any of them, bar SD Haxorus, while it can OHKO back, or T-Wave them, and also punish them for using Outrage with Iron Barbs.
(It would be the best water-type counter if not for that damned Scald... I want Shield Dust Ferrothorn now!!!)
Ferrothorn for A rank already.
Jirachi is a superb A rank pokemon, but it should stay there. It isn't the best sweeper, nor the best defensive pokemon, and it surely isn't the best support pokemon. It does all three roles well, true, but it doesn't excel in any of those imo. It's claim to fame, being the only counter to Torn-T in OU, helps it a lot, but is not enough to push it to S rank. Let's see its two best sets, specially defensive and SubCM:
1. Specially Defensive
This set walls a ton of special attackers such as Lati@s, Starmie (outside of rain), Tornadus-T, Alakazam, Genesect (in rain), Reuniclus, and Gengar. It is also a very good check to Dragon types, as it can easily absorb Outrages and DMs and paralyze their users back. Finally it can pass Wishes to its teammates, and set-up SR, making it a very good team player. However, Jirachi gets destroyed by too many Pokemon to be considered an S rank defensive poke. Garchomp, Landorus, Ferrothorn, Landorus-T, Heatran, Hippowdon, Magnezone, Mamoswine, and Rotom-W are all very common pokes that can OHKO Jirachi, wall it and slowly kill it, or even set up on it. I am not even counting checks such as Politoed, fat Starmie, Tentacruel, Jellicent, Forretress, and Skarmory, which usually walk all over Jirachi, because Thunder is always a possibility on rain Jirachis (in which case Thundurus-T, Landorus, Landorus-T, Landorus, and Garchomp are a nightmare for Jirachi). Also Jirachi has to rely on Wish for healing, which results on it having heavy 4MSS, because without Protect it can't wall special attackers that reliably, and has to spend more time making sure that it stays in tip top shape, and with Protect it can't use SR or U-turn, resulting to limited utility and inability to avoid getting trapped and set up on by Magnezone. For all those reasons SpD Jirachi is not an S rank poke, imo.
2. SubCM
This set is the single setup sweeper with the most setup chances than anything else. Jirachi can wall and/or force out a ton of Pokemon, and thus setting up a Sub is a piece of cake. After setting up a Sub, Jirachi can either start setting up CMs, if the opponent brought in something wrong thinking they were dealing with SpD Jirachi (Roar-less Heatran, Ferrothorn, or Skarmory), or straight up attack, paralyzing everything in the meantime, and thus getting even more chances to setup. If Jirachi carries Water Pulse the luck factor becomes even more deciding, and makes dealing with it even harder. However, SubCM Jirachi has many common counters and checks, exactly as SpD Jirachi did. SpD Hippo, Gastrodon, SpD Celebi, Roar Heatran, Garchomp, and Ninetales all hard counter SubCM Jirachi, while Landorus, Dugtrio, CB Tyranitar, Chansey, Blissey, Hydreigon, and CB Scizor are all good checks. Finally anything faster than Jirachi, meaning plenty of pokes, that can deal upwards of ~60% to it makes for a pretty good revenge killer. For all those reasons SubCM Jirachi is not an S rank poke, imo.
Jirachi has other effective sets as well, such as Sub + 3 attacks, Scarf, WishCM, and SubToxic, but those are not as good as the ones i mentioned, and have more limited use in general. So only one question remains. Is the versatility that Jirachi has, due to the ability to run two very effective sets that play very different, enough to make it S rank? The answer is no for two reasons. First, there are still many popular pokes that can counter both sets simultaneously, namely SpD Hippo, Gastrodon, and Roar Heatran. Second even if you guess wrong the first time, you won't get punished hard for doing so. I brought in my SpD Celebi thinking that Jirachi was SubCM and i got hit by Body Slam instead? No big deal i will switch out, having lost little damage and healing the paralysis. You brought in defensive Politoed thinking that the opposing Jirachi was a SpD variant, and it suddenly made a Sub? Again no big deal, your least valuable member (SubCM Jirachi is used in rain teams, against which defensive Politoed is the least valuable member) lost ~50% of its health while getting a Perish Song off. Now you know how to deal with it the next time, and it will be able to throw two more attacks at best before getting forced out (Protect on Politoed).
tl;dr Keep Jirachi in A rank.