How to get IPs/hostname from clients from different network(s)?

What do you use as router? You might be able to use EDNS(O)

In general, there might be not much chance with this setup, as all queries from the different subnets appear for pihole as if they would come from 0.13-forwarding-IP (which they are, from an IP view).

You might need to change your setup and assign IPs for each subnet to your Pi-hole device. Something like
https://ostechnix.com/how-to-assign-multiple-ip-addresses-to-single-network-card-in-linux/