Ivysaur
Ivysaur isn't all that great in-game. It has a ton of weaknesses, including to Sabrina, Blaine, Lorelei, and Lance. It has a pretty iffy movepool too, but it can be alright if your main intent is to passively damage an opponent. With Leech Seed, PoisonPowder, and Sleep Powder, it can stall out an opponent, provided it has a type advantage. Its best STAB move from level up is Razor Leaf / SolarBeam, but neither is that good. And did I mention it doesn't get any Poison STAB from level up?
Charmeleon
Charmeleon is a bit better. It struggles in the early game, but in its level up movepool, it gets access to pretty solid moves like Metal Claw, Flamethrower, and Slash (Dragon Rage would be good, but it comes too late). In the mid to late game, it has a weakness to Giovanni, and one fewer weakness than Ivysaur. Its best STAB move is Flamethrower, which actually comes to a reasonable level.
Wartortle
Wartortle has the fewest weaknesses and (arguably) best movepool of the three. The only disadvantage in the mid-game it has is to Erika, as Lt. Surge is a bit earlier on and not technically midgame. It gets solid picks like Protect, Bite, Hydro Pump, Skull Bash, and Surf -- so while it doesn't have a lot of type variety, it makes up for it with power.
None of the starters are amazing in the end-game. They have bad movepools and bad stats, making them outclassed in a normal playthrough. However, if you're intent on using one, just don't use Ivysaur. Charmeleon and Wartortle are both okay at best, but Ivysaur is just terrible. It'll die fairly quickly should you choose to use it against any major trainer that isn't Giovanni, and it can't really do much when it does have a favourable matchup.
Charmeleon has a bit more move variety, but Wartortle has the stronger moves. Pick the one that will serve you better for your Nuzlocke.
Good luck :)