Actually, there are more problems. Phrases below horizontal lines mean it's a general rule. They always apply, the card doesn't need to be in the game. Also, "gain a curse" is probably not defined here, because it's not clear whom it's addressing. Everyone? Then each player gains a curse whenever someone else is shuffling..
okay, so, a fixed version looks like this:
Haunted Village - Action - 4$
+1 Card
+2 Actions
You may trash a card from your hand.
----
Whenever a player shuffles his deck, each player who gained a Haunted Village this game gains a curse.
That way the effect doesn't stack. If you want it to stack, you'd have to say "gains a curse per Haunted Village in his deck". That causes tracking problems though. And it's really weak too. And it gets worse in 3+ player.