Heatran is definitely the best Jirachi's counter even though Superachi (CMJirachi@HP Ground) is a viable Set. WishCM, Scarf, Specially Defensive, EBelt, etc all these Sets cannot get through Heatran. But well you obviously already knew it so let's talk about its other checks/counters.
Physical Jirachi is completely walled by :
- Donphan
- Heatran
- Hippowdon
- Gastrodon
- Ferrothorn (watchout Fire Punch though, I'll talk about it later)
- Forretress (is a check, definitely not a counter but Jira is a spikes bait for it)
- Gliscor (watchout Ice Punch though)
- Mew (the Stallbreaker set)
- Slowbro
- Garchomp (watchout Ice Punch once more)
- Jellicent
- Landorus-T
- Rotom-W
- Skarmory
- Tentacruel in rain (definitely not great counter in Sand + Jira runs Zen Headbutt in the current metagame)
- Politoed
- Scizor (Firepunch ...)
Ok well, that does a lot of counters, I do agree but this is actually a bit "wrong" knowing Jirachi's ability to flinch like 10 times in a row. Don't forget that Jirachi has Trick and can completely ruin its checks/counters by giving its Choice Scarf + flinching.
About CM Jirachi they're basically the same without a few ones (Tentacruel, Politoed, Skarmory, Ferrothorn, Mew, Jellicent, Slowbro, Rotom-W ...). SubMindJirachi is definitely the hardest Set to handle, especially when you don't know its full set (Water Pulse ? Psyshock ? Wish ? Subsitute ? etc ...)
Jirachi rarely runs Fire Punch, especially in the current Metagame where Ice Punch is much more useful. People even run Zen Headbutt to hit Keldeo, so yeah Fire Punch is really rarely used on Jirachi. It has been used at the beginning of BW1 for Ferrothorn, Bulky SDef Scizor but now it's completely obsolete.