How do I broach the subject? Should I start off by saying that I am
being underpaid?
It would seem reasonable to indicate that you believe you are being underpaid and why. But it might be better to focus on your increased value to the company, rather than your salary relative to others. If the company decreased their starting offers, would you feel overpaid and ask for a reduction?
Should I share online links from websites like glassdoor?
You could. But it would be unlikely that an HR group doesn't already know what is contained in those sites. It's their job to know this stuff. Most HR groups I know periodically purchase a lot of information on competitive salaries and salary trends for their industry and locale.
I had a couple of offers last year which offered around ~20% hike from
my current salary but I couldn't join due to personal reasons. Should
I bring that up at all or will I get fired for that?
You could threaten to leave and indicate that you have had a couple of offers. Of course that fact that you didn't actually accept the offers (for whatever reasons), makes this a weaker excuse that you'd prefer.
You could be fired, although that would be unlikely.
Are you willing to walk out if you continue to be paid less than you feel is fair? If so, then you have some leverage. But if not, then there isn't much leverage in your favor. Just because it takes a higher offer to lure new graduates to your company - that doesn't automatically mean you are worth more to the company.
Remember, the company already knows how much you are being paid. And the company already knows how much they are offering others. So showing HR a bunch of facts and figures probably isn't going to sway their opinion.
Your displeasure might sway them. More importantly, demonstrating your worth to the company (without regard to how much others are paid) might hold more sway. It probably won't get you fired, and might be worth a try.