All Outcasts are immune to corruption apart from the Drunk who is always corrupted.
Edit: I'd also like to point out that there just was an update and it makes (among other changes) Alechemist's range more clear/obvious.
Salomé
Recent community posts
I don't know in which order you killed the innocents but #3 was seemingly good since it was saying #6 was a real bombardier (which was very likely considering it's the only visible outcast and the deck is saying there's one outcast). That would only leave you with #2 and #4 and now it's really just guessing and it's unfortunate that the witch was the unrevealable card but that's how it is. You also could've saved the Fortune Teller's power earlier on for this since when you have few cards that allow you to choose it can get hard near the end.
Minions sometimes bluff as a character already in play while demons cannot. Some roles talk about Evil in general while others only focus on minions which can be tricky if a character claims another is a minion and then it turns out to be a demon since you may not realize it lied. The Wretch appears as a random minion and never a demon.
These are subtle but can make your games easier if you know them.
Correct me if I'm wrong but I believe the Witch was bluffing as a Slayer? If yes then it's not a bug per say but a rule that is a bit confusing. When a Lying Slayer (Any Evil except Puppet Slayer, or a Corrupted Slayer) tries to kill someone it will automatically say "x is not Evil" no matter if it's true or not. Why? Because it counts in the code as Slayer's ability not working (the same way a Lying Alchemist cannot cure). In the future, I recommend imagining that, instead, the slayer says "I could not kill x" (which, I believe, is what the Slayer says in the steam version) and remember that a Lying Slayer is not so much a lier as it is a character that just does not work. As for the Pooka, it is in fact lying because, to Pooka, The Witch is a lier.
Hope this helps!