I'm going to go out on a limb here and say that offensively, Poison is unbalanced and unfortunately mediocre. Right now, Poison coverage is pretty much never seen in competitive play. It does hit Faeries, yes, but most people just use something like Aegislash as their designated Steel killer and not a Poison type. I agree with the OP that it should be super effective against Water, balancing out the two types a bit and giving Poison a legitimate reason to be run.
Dark is fine with Steel not resisting it, but Ghost really needs to revert back to its old state. It has coverage pretty much equal to that of Dragon (hits self super effectively, resisted by one type and negated by one type), and those actually have reason to be so powerful, given the basis of the type. Ghost doesn't quite have that basis distinction, and Steel losing its resistance has hindered a lot of Pokemon. Giving it back will stabilize the Ghost type offensively, in my opinion.
Also make Ice resistant against Water and do at least neutral damage to both Water and Steel. Come on, ice freezes water, and many metals have trouble with the contraction that comes from cold conditions.