Sadly, this rule is never triggered (counter stays at 0) and incoming GRE packets are going through the input chain, where they are blocked by the “drop invalid” default rule.
Do someone knows why the dstnat rule isn’t triggered ?
So that’s the mistake. For the IP stack, the ether1-adsl interface is not relevant. So replace it by the pppoe-out1 (or whatever name you have assigned to the PPPoE client interface) in the firewall rules and in /interface list member if used there, and the forwarding should start working.
In that case, the only thing I can imagine is that the GRE packets started arriving before this dst-nat rule has been added, so a tracked GRE connection has been created. And only packets not matching any existing connection are pushed through the srcnat and dstnat chains. So /ip firewall connection remove [find protocol=gre] would normally help, but with GRE it is not always the case, so disabling the tunnel at the remote device for more than 10 minutes may be necessary to make the tracked connection time out.
As I wrote - removal of connection normally works, but the handling of GRE in connection tracking is weird in many aspects. I had multiple cases where the removal of GRE didn’t succeed in the past. So worth trying, but not guaranteed to work.