What is someone who leaks a surprise called?
Some more generic terms for someone who talks too much or indiscreetly: prattler, blabbermouth, motormouth, bigmouth.
If it's someone who can't act the part, I would simply say a bad actor or, if trying to be humorous, a person with limited thespian talents.
If they did it on purpose they could be called a spoilsport or a party pooper (slang).
A blabbermouth. While not specifically about them blowing the surprise, I'd also call them a jerk or a party-pooper.
You could label someone a dampener and consider it appropriate in this context, although some might argue otherwise.
A known figure of speech goes something like this, from The Free Dictionary:
Put a damper on something
Fig. to have a dulling or numbing influence on something. The bad news really put a damper on everything. The rainy weather put a damper on our picnic.
I personally think this could be applied to 'dampening a surprise', and further, the person committing such an act deemed 'a dampener'.