I think this is Shulk's biggest problem. He's really predictable in neutral and he lacks any good approaches.
That said, my most success has been shifting between vanilla, speed, and jump. The best way to win out neutral is to be less predictable, and swapping between three distinct playstyles is the best way to do this. When in speed, spend a bit of time trying to land a turnaround grab or a pivot f-tilt, and work from there. If he sees it coming and you can't, start nairplaning on speed and landing behind him, then when he shields, go in for a speedy grab.
For Jump, embrace empty shorthops and do descending nairs and fairs into grabs. Try to land just past them so you can quickly follow up with the grab, and never let the nairblade leave them. What I mean is, if you're landing behind them, you're presumably facing away from them. Since nair's earliest hitboxes are down and behind Shulk, you'll want to nair late, most likely just before or even a bit after the FF. That way your blade spends the most time colliding with the opponent's shield, giving him less time to react.
This is actually super important. The more I play without taking breaks, the lazier and sloppier I get, and the first thing I notice to go is my nair timing. I miss FFs or nair really early to the point that I'm nearly doing the full animation. This is a huge waste of time as any point where the blade is not touching my opponent is time that he can react and punish me. It's entirely possible that this is where your neutral game troubles come from. Ideally when you nair, depending on your positioning, your blade should never leave certain positions.
If you're on Speed and you're SHing over him for a nair approach, you should hardly even see an animation. It should only appear behind you. If you need to cover more space, you can let it go a bit further, but it shouldn't pass the 6 o click position.
If you're doing this in neutral, same deal but since you aren't making as much distance and you can't react as fast, you may want to let it just pass the 6 o clock position. Speed nair covers a ton of distance and doesn't need the extra hitbox time, but vanilla nair does.
If you're spacing him out or making a wall of aerials, face away from him and do quick nairs down to about the bottom left or right of Shulk, not passing the 6 o clock position. For instance, if you're to the right of your opponent, face to the right and do superfast nairs, making sure that the sword is never to the left of you.
If your opponent is aggressive and you're punishing a hasty dash or a roll, have your nair sweep all the way to just below 3 o clock or 9 o clock positions. These should be sweeping nairs, as you're trying to cover a lot more distance. Your opponent is locked in an animation anyways, so unless he's someone fast or slippery he probably can't punish very hard.
Get into the habit of spending neutral game in Speed and Jump. Swap to Buster or stay in Speed when they're at around 40% (depending on the character), then learn to kill using only Jump. Killing with Smash is fine, but it's not a skill to learn. Killing with Jump opens up a lot of options, but you have to learn those options. I often find myself finishing people with a uair when they're off the top of the screen, because they didn't consider the possibility.
If you're forced into vanilla for the neutral game (jump is too scary and speed is on CD) just be patient and let them approach. If they have a projectile or they zone harder than you, be even more patient. Either balls up and use jump to approach, or use it to disengage and wait for speed to come off CD.
And finally, learn turnaround/pivot ****. It's so useful for safely reading rolls. I often find that I lose due to intelligent roll spam, and turnaround ftilts and fsmashes have been a saving grace against this.