That output suggests that DNS traffic from your network to your Docker host on the defaut port (53) and on port 5053 is correctly routed by Docker to the respective Pi-hole and unbound containers, and that both Pi-hole and unbound are responding as expected.
I am curious about your unbound configuration, though:
Those lines map your host's port 5053 to port 5053 of your unbound container.
But how did you actually configure unbound to bind to port 5053 instead of its port 53 default?
Also, when I asked to verify Pi-hole's required ports, did you change anything on your host OS?
It's ok if you didn't change anything - the dig results show that your machine is responding.
I cannot answer that.
Nevertheless, it's what I would expect if you did nothing to configure unbound within its container.
As a DNS resolver, unbound would bind port 53 by default.
But the maintainer of that image may have preconfigured it for a different port within that image.
I'd expect that to be a documented feature if it is - you should probably check that image's documentation.
In the meantime, it wouldn't hurt to give that setting a try to see if it fixes your issue.
It's easy enough to apply and revert those changes.
EDIT:
You may also have to change the port for Pi-hole's upstream to 53 (or to remove #5053):
I agree that analysing your issue may seem difficult, but I don't think you should retreat without trying my recent suggestion (apologies if you've already done so).
It would just require to change a port 5053 to 53 in three locations, restart your containers, and see if a gravity update would finally populate your gravity database.