My internet connection is delivered as native ipv6, with ipv4 tunneled via MAP-E (RFC7597). I share a single ipv4 address with 256 other customers, where the middle 8 bits of the port identify the customer. I can get functioning UDP and TCP by defining a sequence of rules with the nth matcher that load balances across my 16 port-sets.
When natting ICMP, the query ID is used in place of port. See RFC5088 Section 3 https://tools.ietf.org/html/rfc5508#section-3 and RFC7597 Section 8.2 for my particular case. https://tools.ietf.org/html/rfc7597#section-8.2
So icmp to ports is need for some env. Can you support it?