I am not sure if the suspected person is really the problem.
First of all, in your case, I would not necessarily buy a new router, as it should not be the true problem. If it still has the original firmware (for some routers you can install alternative firmware, have you checked for this?) So given the case the firmware is original, then a factory reset would be enough to keep it secure.
The next step would be to secure your Apple ID with 2FA in your security settings. If you use the normal profile for private users, this will secure your account and devices from logins by third parties, if they don't have physical access to your mobile. You can look in your iPhone if there are profiles set. If you don't find any under settings, there are none, because the profiles are just shown if there have been installations of those. If you find profiles, you should be able to erase them, which solves the problem.
Same goes for your MacBook. In your settings you should be the only administrator and there should not be any users you don't know. If there are any, erase them.
So, given the fact that your iPhone is without profiles and that 2FA was enabled, you could change your Apple ID Password once more. That should make secure that nobody can log into your Apple account, also not into your computer.
Ok, now you log in into your router and make a factory reset (or flash the original firmware from the manufacturer, the how to should be on their website). You should be able to do this with your iPhone using Safari accessing your routers web interface.
After that you reset the router and gave it a new password, you can use your iPhone to connect with your WiFi. That should send the login data to all your devices who use your personal ID. Even if the suspected guy has your Apple password, he will not have it now, cause of 2FA. He can't have the router password, because you reset it and gave it a new password. In your Apple devices settings turn off connecting with public WiFi's
That's about your personal Apple devices. The only entry point he could have is the other devices you spoke from, and only if you allowed them to connect with your Apple devices. If you never allowed any device after the procedure above, he really would have to have physical contact with your Apple devices to compromise those.
Further steps would be to change passwords for any online service you use, like cloud services (if you just use the Apple cloud, you don't need to change anything, as you already did this). Use 2FA whenever it is offered by a service you use.