Offer comes from the server with the server's IP as the source and the destination IP of the relay agent's IP which was inside the previous discover packet.
This offer gets sent to the client with the source IP of the relay agent IP.
The following you observed is correct. I am assuming that is the capture taken on the outside interface on the FW.
The packet towards the server looks like this.
192.168.254.30(67) -> 192.168.100.13(67)
The return packet looks like this:
192.168.100.13(67) -> 192.168.113.1(67)
Collect simultaneous captures on the ASA on both the inside and outside interface and observe the relay agent IP on the discover packet egressing the outside interface. The offer will be destined to the relay agent's IP seen in the discover packet.
I have looked at your pcap. I don't see how I would make it work still.
I have investigated it so far that I can see the packets disappearing on the FW when the packets return from the server. I would see this being normal if this was TCP because there is no session/connection that matches it. But this is UDP, why would the FW drop it on the return?