DHCP/BootP is Broadcast Traffic by definition.
The DHCP Relay / IP Helper configuration can only be used to forward request from hosts NOT on the same physical network as the DHCP Servers to the DHCP Servers (at least in the Router).
If you configure a DHCP Relay on a switch the DHCP relay agent can in some instances be smart enough to, if they have an SVI to associate the MAC to IP for the DHCP server, direct the broadcast message even in the same segment, so that only the DHCP Servers configured in the Relay receive the DHCP request.
Otherwise any time you send a DHCP hello request it will be answered by any DHCP server in the same segment.
Options you might consider if you need these DHCP servers to be doing separate things:
Segregate the DHCP Serving interfaces onto their own network segment and configure DHCP Relay for them appropriately.
Move only the DHCP server you don;t want to answer locally in the network segment to a separate network segment (either it's own with it's own relay or a vlan where local clients should receive it's reply.)
Set up separate DHCP ranges on several VLAN interfaces on each server so that each sever only responds to the appropriate local network (And do away with DHCP relay on the router)
Note that IRB on the other hand simpley allows the device to bridge local connections at Layer 2 instead of routing them at Layer 3, so any Devices in 10.20.1.x could be bridged directly as applicable (ie this doesn't really have anything to do with DHCP per-se, except as it allows the local broadcasts to flood both vlans rather limiting the usefulness of having separate segments)
Essentially the IRB is a second IP address in each VLAN / Net Segment, that the switch will forward all packets destined for the other vlan segment through to allow both to communicate with each other by bridging (the switch makes a direct connection between the devices and no routing needs to take place).
Long Story Short (too Late)
I'm fairly sure that the broadcast command allows the broadcasts in one vlan to flood the other and vice verse, so if the DHCP server is set up in one it will get requests from both. (Which I believe fits exactly the behavior of the issue that you are trying to describe above.)
As such, what I believe you need to do is:
- Set up your IRB to have 1 IP in each subnet.
- Not to use the broadcast switch.
- Set up your DHCP relay ONLY for the vlan which DOES NOT have the DHCP server on it.
This should send a directed message to the DHCP server as a unicast message via the relay, which will then match your IRB, so this will happen as a bridging action.