Pikachu ultimately goes even with ZSS. He likely beats ZSS on Final Destination and possibly Duck Hunt, but loses at least on Battlefield and Dreamland. If you care about improving your ZSS I think you should go through the struggle of learning the matchup along with Villager and Ness matchups (both of which ZSS goes even with or beats), especially since it sounds like your problems are more related to fighting those characters in general.
They all require quite a lot of precision since they're small characters. They're also all characters with good projectiles and good rising aerials (meaning they can hit you with their shorthop aerials as they're rising when you're standing on the ground) so it sounds like your problem might mainly have to do with dealing with those things. You should implement more dash to shield into your approaches, i.e. you just run towards them, shield and wait for them to jump with an aerial or use a projectile and then punish it with something like up tilt or grab. If they start grabbing your shield approaches then switch to shorthopping again.
Up b out of shield is also really worth learning if you haven't, since it does 17% damage, kills at high percents and is able to punish almost anything that hits your shield. You have to either use tap jump and up b while holding shield (not recommended), or set L or R to jump (the one you don't use for shielding) and then, while holding shield, press the newly set jump shoulder button + up b
simultaneously. This lets you cancel your shield with a jump and up b instantly before leaving the ground. Without canceling your shield with jump, it'd take you an extra 7 frames to up b after you let go of shield and you couldn't punish most things in time. You can try this in training mode at 1/4 speed and really see the difference.
This is also really good for punishing Pikachu's smashes since he has to resort to those to kill you. Just sit in shield at high percents and wait for him to smash, and once he does, up b him out of your shield (
example). Also great against Mario, Luigi, Fox and Ryu for instance (it's a must for punishing Ryu's tilts).
Aside from their projectiles, Pikachu, Ness and Villager also severely lack in their range and mobility (Pikachu not as much in mobility though), which you should abuse with ZSS' zair, ftilt, nair, bair and to an extent dsmash. You don't really need to approach, but rather stay right outside of their moves but at a range where you can barely nair them in the air and ftilt them on the ground. Keep jumping back and zair occasionally, and throw out dash grabs once they become scared to jump. Against Villager you have to watch out for his pellets, but zair goes through them, and remember to mix up with dash to shield approaches like explained earlier.
Shorthop into immediate airdodge is good as well (you essentially have to make the inputs simultaneously), since it lets you go through a lot of attacks and you can use your uair after the airdodge before you land. You can jump past the opponent with a shorthop airdodge and barely use your bair before landing as well. Learning all these things may be overwhelming at first but it really doesn't take long for it to become intuitive and effortless after you start practicing and applying it.
Sorry if I'm explaining things you already know, but yeah. Proper spacing and precision, dash to shield, jump canceled up b out of shield and shorthop airdodges into aerials or paralyzer are really important with ZSS if you're struggling vs short characters with good projectiles and rising aerials. Often once you start properly punishing your opponent hitting your shield, they can become super uncertain and scared to throw out attacks or projectiles. That's when you can start playing more aggressive and get the momentum, or you can just attempt to rely on ZSS' superior range and try to stay outside of the opponent's range and chip them out.
Diddy and Sheik can be tough in neutral but the same things largely work on them. Against Diddy you have to focus on playing around the banana by just remembering he can't grab you when he has one out, sitting in shield and waiting for him to throw it off until it's gone. If he starts to just sit back and wait you can occasionally go for dash grabs on him. Once the banana is gone you need to try to punish him pulling it out with a dash grab and combo him as hard as possible. Best secondary against Diddy would probably be Cloud.
Vs Sheik, you lose hard but then she can never kill you if you focus on avoiding her setups and "kill moves", then you grab her once and kill her with a rage dthrow combo or back air or something. But you've played Sheik so you probably know how to play against her as well.