There are many possible explanations for this, but it all boils down to one thing: whether or not you are using a hacked copy of the game (ROM/emulator).
If your copy of the game is hacked
Basically, if you are using a ROM or emulator, then your copy of the game is considered hacked (which is also technically illegal so try to avoid it). This can easily cause problems, as hacks can easily screw up. So the level up problem is most likely a glitch caused by something going wrong in the hack's code.
There is also another possible reason, although debatable: there is an anti-piracy system built into the game. Many people who have experienced similar issues with their hacked copies of Black and White blame it on this. Although it is not proven to exist, it is definitely a possibility, just looking at how sensitive Nintendo is to hacking now (with the Pokemon Bank hack checkers and such).
This theory is still kind of illogical though; if there really is this sensor, then why has it only affected Snivy and not your other Pokemon?
If you are using a legit copy of the game
Then this is most likely a glitch, and unfortunately there isn't much you can do about this, since a bug like this is usually the consequence of a failure in the code of the game. There are few things you can try, but are not guaranteed to work:
- Turn the game off and on again. If anything will work, it'll be this; the game might just need to reset itself to work.
- Restart your game completely. You can do this by pressing R, B and Down simultaneously on the title screen. Since you are still at the beginning of the game (I suppose?), you wouldn't lose much by doing this, so it's worth a shot.
You can also try blowing the game card and the game card slot, however if this is indeed a coding error then this would not work since that would only work if the game is read incorrectly (which would ordinarily lead to a freeze rather than a glitch like this). Besides, I don't recommend doing this since it applies moisture to the card/slot, which can cause data to be read incorrectly, or possibly even damage it, so don't do it.
tl;dr: this is most likely a glitch, and is unfortunately a glitch that you really can't fix.