My usual strategy, when I have a pokemon far behind in levels is to go back a few zones, where pokemon are a few levels below where your leaders are (or where they are the type your leaders are good against). The important thing is that your good pokemon can take a few hits without having to run back to the poke center every fight.
Put your 'behind in level' pokemon as the front pokemon. Start a battle and first turn, switch your 'behind in level' pokemon to your lead pokemon. The XP will be split half and half between the two.
If you left trainers behind, it's a good idea to fight them, since they give more XP than random pokemons. But in a trainer battle, when it asks you if you want to change pokemon after you down one of theirs, do so and put your behind pokemon back in for the first turn of the new pokemon (if its an option in the first generation, not sure).
That should make the 'behind' pokemon be able to build levels quickly and make it catch up to a 'viable' point.
Only thing: Watch out if a pokemon has a move that hits a switching pokemon, like 'Pursuit'. But I don't think those existed in Gen1.
PS: Some points in here might not work because its something that is not in Gen1. But I'm pretty sure that the main point (the XP is shared between all pokemon that were used in a battle) is still valid.