The net amount paid by each man was $9.00 (making a total of 3x9 = $27.00 paid). The net amount received by the hotel staff is also $27.00 ($2.00 by the Bellboy plus $25.00 by the guy at the desk). So where exactly is the supposed the discrepency?

This is a variation of the $100 bank problem (a man deposits money into the bank, each time he counts his remaining balance, etc which adds up to $99 even though he had $100). Adding the $2 that the bellboy kept is fallacious for the reason above. The hotel kept $27 and returned $3, so the men paid $9 each. That adds up to $30.

The men each paid US$9 for the room or US$27 total. The hotel got US$25 and the bellboy got US$2. 25 + 2 = 27. It's a trick question and the 30 is not the goal. Or you can say each man initially paid US$10 and had US$1 returned to them. 30 - 3 = 27 = 25 + 2.