OK, solved! Kind of. Although this merits some more investigation.
It seems that when connecting to some routers, my network goes into systemd-mode and refuses to connect to any alternative I offer in resolv.conf. All I get is vague error messages as above. If I force dhcpcd to only use my own statically defined DNS servers, all is well and everything functions, also on the problem routers. So, for anyone else struggling with this problem, I added the line
static domain_name_servers=217.160.70.42 91.239.100.100
to the end of /etc/dhcpcd.conf, and restarted dhcpcd. It seems to persist after rebooting.
The only thing that makes me hesitant to leave this whole thing behind me is the fact that somehow, routers are persuading my system to use systemd-resolved. Even if that fails. That routers can override settings on my machine seems like a security issue.