Most Pokemon don't have to fall into just one category. Many of them have the versatility to take on many different roles.
Thanks to high speed, Serperior is able to get the first strike on a lot of opponents, which is useful both offensively and defensively. A lot of walls usually have to take a hit before laying a crippling move, which can be a bit bothersome, but Serperior won't have this problem. He can set up dual screens as well as stalling out with leech seed.
I would suggest replacing Frenzy Plant with Leaf storm if his ability is Contrary. That would boost his special attack by two stages rather than dropping it; that's a nice perk no matter what you're trying to do with him. It also strengthens Giga drain, meaning he'll get more health.
Light screen and reflect are also nice additions, making him a pretty bulky pokemon.
Leech seed is a wonderful move that not only saps the foe's health, but restores your own a bit.
Hidden power[fire]/[rock]-Rock is good in that it can cover 4 of his weaknesses at once. Thanks to that leaf storm boost, it'll get really powerful. Fire is there to help deal with steel type pokemon that resist grass as well as get immunity to poison. They could prove to be very bothersome for you.