I did several playthroughs, if there will be a tier list or a "viability ranking" of some sort I might give you my opinion about some of the pokémon I used.
Two of the best pokémon you can use, especially for the early parts, are Azumarill and Flamigo.
Flamigo has the big advantage that it doesn't need to evolve to gain its full strength, it is easily obtainable and has a good offensive typing. Most people might ditch their Flamigo later, but I assume that it might even be useful until the very end of the game (didn't test it myself)
Azumarill is very easy to evolve of Azurill/Marill, Azurill is one of the first pokémon you'll find on your journey, and Azumarill itselfs learns very strong moves like Play Rough or Aqua Tail shortly after being fully evolved. And it remains strong until the very end.
Other pokémons I used

It is certainly solid, overall above average I would say. It doesn't have many bad matchups and I find ground types particularly useful to have in general. Movepool / Traits are good too
Kilowattrel: Easy to put in your team since it has few weaknesses, can support using Tailwind or Volt Switch, has high Speed too.
But overall I wouldn't say it is better than average, because although it has a nice defensive typing, it isn't bulky at all, and the movepool is only average as well beside the support options I mentioned earlier
Gardevoir: Later in the game, when you have access to the majority of the TMs, it becomes very strong. But before that point it is not impressive. Ralts needs babysitting, Kirlia is below average as well. Hypnosis is a useful move though. Above Average overall I would say since you can catch Ralts very early which makes all the babysitting manageable.
Tinkaton: Nice defensive typing. The movepool, including the TM options, is pretty decent. But overall I can't say it is better than average. It's base stats are unimpressive and once you fight a target resisting your Gigaton Hammer it is a pretty harmless pokémon. I used it to slay dragons and fairies and that's about it for the most part.
Umbreon: It is niche, you play it if you want to have an easy answer to Ghost or Psychic Pokémons. I only played it because it is one of my favourite pokémons. Since it attack is pretty low it can be used to safely weaken pokémons in order to catch them. But overall I am afraid that it is not that interesting choice for most players. For me it worked fine, but for most players it will be below average I am afraid.
Volcarona: It evolves very late and it is not strong before evolution, so below average or even low tier.
Pawmot: Easily obtainable, fast and easy evolutions makes it strong during the early parts of the game. But in my experience it drops later on. So overall an average pokémon
Arcanine: Growlithe is obtainable pretty early, and getting a fire stone is no problem at all. And once evolved, Arcanine is pretty strong. So above average
Vaporeon: Same story as Arcanine. Get TM for Surf, teach it Ice Beam later and you have a solid pokémon. Average I would say, gets the job done if you need a water type.
And for the starters, in the end I would say all of them are above average choices.