This is the correct way to send a DHCPOFFER. Remember that the host still doesn't have an IP address, so sending to 255.255.255.255 is correct. The host MAC address is used as "Client-Ethernet-Address" to identify the correct host that this OFFER is destined to. Other hosts are just renewing their lease, so they send a unicast REQUEST and server responds with ACK.
Since you have the test unit, I suggest you start with bare minimum configuration and verify everything works before adding new packages. I believe even more now that there seems to be some problem in the mac-address-table sending the packet to the wrong interface.