My honest opinion is that if he's not really aware of a party happenning and he's not really aware of presents then it's a strange punishment. He's upset you so you don't want to give him his presents. Well fine, but that's not a punishment if he doesn't know he's getting them or isn't aware of a party, is it.
If Charlotte had been naughty I would have dealt with her behavious at the time but wouldn't cancel a birthday no, I mean how bad can a 3 year old be? I don't know you'll maybe have to tell me. Cancelling her b.day would be punishing myself at this age. I can see me doing that with an unruly teen maybe.
Anyway, hope it all sorts itself out, that he behaves and you all enjoy yourselves.