Despite some minor annoyances, overall I thought this was a very well done show. The characterization is among the best I've seen in an anime, even if the plot was slightly contrived and cliche at times. However,
Spoiler:
Hiro has officially established himself as the Lolicon King (though Tetsu gave him a run for his money), trading adult-Shouko for loli-Karada, then adult-Karada for loli-Shouko. The fact that they get their bodies back in the end notwithstanding.
I think his case may be even worse than Lelouch's.