Pretty much the only thing that you need to use is Pokehbuddy
The current version is usable, but has some known issues that affect the performance. (dev hasn't updated in a while)
Pokehbuddy also comes with a pet swap feature that is imported from a previous plugin, which is not well integrated, but does work.
What it does not do well, is level lowbie pets. It will do the job, but not as efficiently. The issue is that pokehbuddy is built for pvp pet battles, where each pet has a similar level. It will not forfeit if the lowbie dies, or remove the lowbie after 1 round, to save time. It can also get stuck with swapping if the ringer pets become too injured.
For levelling pets, it will rotate the pets that have low health, or heal pets that are injured. The lowbie + 2 25s is called ringer x2 in the pet swapper.
The good news is, there's lots of mop profiles, and there's some overlap from gathering to pet profiles. You can also use random location profiles like rndbuddy or tramper, or others.
Setup is easy, but tedious. For the pets you want to level first, add them to your favourites, and the swapper will be able to restrict itself to using favourites for the low level, and the level range for an area.
Then, you have to set up a few logic profiles for the pets. That is the tedious part.