Technically, your ISP just assigns an IPv6 prefix to your router, for it to use within your local network. Of course, a changing prefix will result in changed IPv6 addresses, though it would depend on the router's as well as the client's configuration whether the interface identifier would change as well or stay at its previous value.
Note that independent from you ISP, a client's configuration may prompt assignment of a new interface identifier on certain events or on a regular basis (e.g. when Privacy Extensions are enabled - which they are and should be on most current OSs).
That's a most important question.
Unfortunately, I cannot help you very much further, as the answer would very much depend on your router's make and model (and firmware, possibly).
You'd have to find a way to configure your router to advertise your Pi-hole host machine's IPv6 as DNS server instead of its own.
You'd have to consult your router's documentation sources on further details for its IPv6 configuration options.
If your router doesn't support configuring IPv6 DNS, you could consider disabling IPv6 altogether.
If your router doesn't support that either, your clients will bypass Pi-hole via IPv6.
It may be worth investigating this in detail.
Your router may insist on knowing the full IPv6 address, without any of the abbreviated notations (e.g.. ::
should be expanded, and each group should consist of four hex digits).
And of course, link-local addreses are only visible on the same network segment (or link ). So any L3 switches or VLANs, and devices connected through those won't be able to communicate with Pi-hole that way. That could also apply to your router.