There's a dynamic I've noticed this game. The penguins are trying to find the psychic while the psychic builds a coalition. It's only a matter of time until the psychic has enough support to effectively win the game.
There's a custom role that seems like a joke but could help to make this dynamic more interesting, the village idiot. The narrator tells him he's a psychic but he isn't.
I like the idea of a double agent. A villager who knows the status of the penguins, but is not one of them. He votes in a way the penguins like to ensure he survives the nights. (No guarantee about the lynching though).
Someone who can withstand 1 penguin attack and if they are attacked they are given a hint as to the identity of the penguin. If they are attacked again their survivability is 50%. If they survive the 2nd time they are given the identity of the penguin. This makes it so the penguins have an element of risk when they decide to kill someone
The number of penguins in play should be unknown. Is it 2, 3 or 4? (depending on the size of the game). We don't know until either no one is killed during a night or when someone dies the penguin signs their name on the victim. (so it may take 3 nights and 3 different names before the villagers know that there are 3 penguins afoot!)
If a doctor/exorcist wants to protect a villager but has instead given the name of a penguin that was supposed to be killing on that night, the doctor/exorcist dies (perhaps in addition to another villager the penguin wanted to kill).