Why are my pokemon so weak?

Solution 1:

Your other pokemon (apart from Feraligatr) are all not fully evolved. The stats of unevolved pokemon are inherently lower than the stats of fully evolved pokemon. Onix, a defensive pokemon, with 153 defense, actually still looks pretty strong, if not an offensive powerhouse. Haunter's special attack is fine as well. Growlithe does look fairly underpowered, but that is just the nature of some pokemon versus others. Arcanine is solid but he's never going to be the hardest-hitting pokemon in your party.

I don't think there's anything to worry about. If you have a trade partner, you could evolve Onix and Haunter, and you can use a fire stone to evolve Growlithe, which will give you some extra stat boosts.

Solution 2:

As StrixVaria wrote, you have a not fully evolved team. Moreover, if you want to train only 4 Pokemon it's important to balance their movesets and the relative coverage.

In Crystal you had 3 fully evolved starters and Gengar who granted you a pretty decent coverage.

In your current game you probably need to improve that. I hope some of them know at least an Ice and Electric move, for example.
I'd recommend you to change Onix, that's not a good Pokemon for a playthrough due to its low base Attack and Special Attack stats. I don't think you need defensive Pokemon.