I would take him over both Posey and Mauer. Look at how our pitching staff has performed compared to the Giants. And Mauer isn't all that great defensively, is injury prone and even the Twins would rather have him playing somewhere else. Hanigan offers more behind the dish than either at the moment. Maybe you would choose Posey simply because he has more years left...but if you had to pick one to play catcher only for the next two seasons...well, nobodt can call a game like Hanigan does. He's the engine of this pitching staff and that's invaluable.
Yadi is better offensively, sure. But I think its not too long before his production stops slipping...then again, those damn Cardinals don't age like other players for some reason. I'd still take Hanigan. Mostly because I can't stand Molina. If Hanigan ran his mouth to the media and played in St Louis, New York or Boston he would widely be considered one of, if not the best game caller in the league. But since he's reserved and plays in a small market, he's wildly overlooked. I don't think anyone can disagree with that.