The main problem with your approach is that you have overlapping subnets. This is not a valid configuration.
What happens when a host in the upper half of the 172.16.0.0/22 subnet tries to contact a host in the 172.16.2.0/23 subnet? It will assume that the host exists on the local segment, and if that's not the case, it will be unable to reach it.
The only way that could possibly sort-of work, is if:
- the two subnets were sharing the same ethernet segment, and
- the router is willing to forward packets out the same interface that they came in on (most firewall products will not allow this)
However, (1) will not work in this case, as you're using DHCP. DHCP is a broadcast-based protocol, and both interfaces will receive the broadcast packets simultaneously.
In short, it cannot be done. Use separate, non-overlapping subnets and separate (V)LANs.