Identifying IPv6 clients by MAC

While changing IPv6 addresses can be expected to be observed on most modern OSs, IPv6 does not require clients to do so.
Creation of temporary IPv6 addresses by generating a randomised interface identifier is optional. Client OSs may be configured to not use or to not prefer temporary IPv6 addresses.
Depending on your country of residence and/or your ISP's policies, there may be regulatory requirements to change an IPv6 prefix regularly, and that may also change on certain events like power-cycling a router.

The DNS protocol is unaware of MAC addresses, using IP address information to identify a requestor.

Pi-hole puts in additional effort (beyond DNS) to associate IP addresses to MAC addresses, by inspecting its host's ARP and IPv6 neighbour tables.
As MAC addresses are strictly same link only, those tables only holds MAC address information for devices on the same network link as Pi-hole.
Any client IP connecting through additional L3 network equipment (like a router or managed switch) would show under that equipment's MAC rather than its own.

Furthermore, MAC addresses are not guaranteed to reliably track a device over time, as modern OSs may randomise their MACs.

Being aware of this, you could consider to employ Pi-hole's experimental alias clients, but note that this would only affect Pi-hole's dashboard.

The best approach for reliable client identification is to force them to use IPv4 exclusively for DNS.
To that effect, you could consider to alter each clients IPv6 prefix policy tables accordingly.
But the easier way would be to configure your router to not advertise an IPv6 address for DNS at all (see e.g. Unresolved ipv6 adress in my top list - #4 by Bucking_Horn).