UDP Error

As explained before, Network unreachable is likely due to lack of public IPv6 connectivity.
As it does not make sense to configure Pi-hole to use IPv6 servers, unticking them from Pi-hole's upstream is the logical thing to do, and would make those errors disappear.

As for Connection prematurely closed by remote server received from an unbound upstream, we've intensively analysed and identified that as being caused by specific behaviour of unbound, see Two Pi-hole instances, One with "failed to send..." - #44 by DL6ER.

There is currently nothing that Pi-hole could do to improve this.

The condition has been reported to unbound, where some potential measures are currently explored. Increasing unbound's incoming-num-tcp (e.g. to 20) is reported to mitigate the issue.

You may consider to contribute your observation over at failed to send TCP(read_write) packet (Connection prematurely closed by remote server) · Issue #1237 · NLnetLabs/unbound · GitHub.

For other cases involving encrypting upstream resolvers like cloudflared, we've seen reports that mIxEd case queries may trigger connection errors.
In such a case, it may help to set misc.dnsmasq_lines under Settings | All settings » Miscellaneous to contain no-0x20-encode.

For all other cases, sharing the upstream DNS servers as well as the full error message (including the root cause in brackets) may help identify an issue.