Unbound doesn't work

Thats odd.
Those "." and "XXX.root-servers.net" records should stay cached by unbound for at least 44236 seconds (approximately 12 hours):

If you get that "no delegation from cache" message intermittently within those 12 hours, it sounds as if unbound gets restarted or some other process that clears cache.

Does your Pi-hole host have an IPv6 GUA address?

ip -br -6 a

Dont post your full global address here for privacy but partially redact it eg 2001:XXXX !!!

If the host got an IPv6 global address via IPv6 SLAAC/NDRA, the router might periodicly change the prefix (coming from your ISP) via IPv6 router advertisement(RA).
Whenever the advertised prefix changes, the IP changes.
And when the IP changes, unbound gets restarted.
A rudimentary way of purging the old IPv6 details that were in cache.
I dont have IPv6 at home but thats what I could make up from below:

Do you see unbound getting restarted frequently with below?

journalctl --full --no-pager -b -u unbound

See below:

https://docs.pi-hole.net/ftldns/dnsmasq_warn/?h=insecure