This is a situation where the details clearly matter.
The subnet in question is 2407:f000::23:0:0/96
The first address in a network block, at least in IPv4, is usually not considered a valid address.
That is what you are pinging in this case.
When I set up IPv6 in my own network and I ping a similar address (e.g. fc12:3456:78:90::0/64), I see similar behavior (namely the firewall "responds" with it's own IP in a ping):
[Expert@GW:0]# ping6 fc12:3456:78:90::0
PING fc12:3456:78:90::0 (fc12:3456:78:90::) 56 data bytes
64 bytes from fc12:3456:78:90::111: icmp_seq=0 ttl=64 time=0.024 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=2 ttl=64 time=0.032 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=3 ttl=64 time=0.048 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=4 ttl=64 time=0.046 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=5 ttl=64 time=0.040 ms
64 bytes from fc12:3456:78:90::111: icmp_seq=6 ttl=64 time=0.059 ms
I tested this in R80.20.
I'm guessing other versions may have the same issue.
When I unload policy, the ping works as expected.
In my case, I don't have a host with that IP on the same network, but I don't get a response from my own IP.
To work around this, change the ISP router's IP address to 2407:f000::23:0:1 and it should work as expected.
If you can't change the IP of your ISP router, then you will need to open a TAC case.