Congratulations, you discovered a limitation in the concept of packet filtering. Tracking multicast protocols: the response can't come back from the same address, because you're absolutely forbidden to send from a multicast address. The firewall can't match the response to your request, so it blocks it. Obviously the system MDNS dameon, avahi, avoids this by sending from the fixed port 5353, so that's where it gets responses as well. Port 5353 is allowed specifically by a firewall rule. If you can get the software to talk to avahi instead, that's the solution avahi would recommend.
It may alternatively be possible to rely on the default avahi option disallow-other-stacks=no, and configure the client app to use the fixed port 5353. It's not clear what effect this has on the reliability of Avahi. Or you could simply disable Avahi if you don't need it. Of course if the app lets you choose a fixed source port, you can just add that to the firewall & it will work...
...except when you say "client application", you probably mean a class of software that should in theory be able to run multiple instances at the same time. It's not running all the network requests through a single daemon. And I bet the app doesn't use the SO_REUSEPORT hack that avahi implements for disallow-other-stacks=no, so this would only let you run one instance of the app at once.
A lot of Linux software for Desktops or dinky local network boxes probably isn't designed to run with a host firewall. Fedora is the main distribution that does so. Fedora Workstation recently changed their firewall default zone to "FedoraWorkstation", which allows connections to any TCP or UDP port above 1024. Either the FedoraWorkstation configuration, or running without a firewall, would allow your software to work unchanged.
It's hard to express the point of a host firewall like Firewalld. It doesn't have support for routing between zones like Shorewall. It does let you choose to set the default zone to something more restrictive, with more permissive settings for your home wireless network, or a VPN. Maybe if you work hard on NetworkManager you can get that to work for a home wired network too. But that's so obscure for something that's enabled by default.
It's entirely safe to run a default install of Fedora (or Ubuntu) without a firewall. What you give up is a centralized policy for which ports are open - in case you later set up some random software, and didn't realize that it wants to listen on a port.
People try to compare firewalls on Linux and Windows, but Windows Firewall is both clearly necessary and actually possible to understand by mortals, unlike Firewalld. Windows has open ports by default, and relies on a host firewall to protect them. It implements trusted/untrusted zones for wired networks. New networks default to untrusted, and it pops up to ask if you want to change it. Different wired networks are identified by the MAC address of the DHCP server. At least since Window 8, the "express" first-run also marks the current network as trusted, which I find theoretically annoying but in practice it's probably quite helpful.
Technically you could also modify the software to talk to Firewalld over dbus and request that the ephemeral port it bound be made open for responses. Somehow I don't think that's a helpful suggestion though.