@fleskefjes is right. Your two routers and the coordinator will be handling messages to all 18 battery-powered devices. They may be capable of that in theory, but there will be no alternative paths for messages to take - in the case of interference, for example.
Normally you would start by building a robust network of routers and add the battery devices afterwards.
At the moment you might expect to see errors relating to message delivery failures after multiple attempts, or to timeouts.
If you want to see how much interference there could be on the channel you’re using you can download diagnostics from the SkyConnect. Towards the end of the report will be a bit like this:
"energy_scan": {
"11": 52.75969252664325,
"12": 88.70042934643088,
"13": 84.164247274957,
"14": 15.32285793082191,
"15": 52.75969252664325,
"16": 31.01324838787301,
"17": 80.38447947821754,
"18": 82.35373987514762,
"19": 15.32285793082191,
"20": 80.38447947821754,
"21": 1.9464625152460222,
"22": 2.84844209578687,
"23": 46.26944564832987,
"24": 1.5075412082833717,
"25": 2.2107128772756957,
"26": 52.75969252664325
The percentages represent everything on the channel - Zigbee, your wi-fi, your neighbour’s wi-fi etc, etc.
But the problem is almost certainly too few routers. How many you need will depend entirely on the structure and layout of your home, but I would expect it to work out at a dozen or more.
Incidentally, you should expect all your end devices to be unavailable sometimes - after a restart, for example. The coordinator has to wait for them to check in, which can take an hour or more with some devices.
Do read the community guides - there’s lots of sensible stuff there. Zigbee is not a simple point to point thing - it can take a lot of tuning to get it right.