Portforwarding and VPN problem

Multiple issues.

  • You force routing of anything that comes from the 192.168.12.0/24 subnet (which includes the server at 192.168.12.1) via the VPN “WAN”, except the single /22 destination subnet in address-list ppoe-destinations which you force via the PPPoE WAN. So if the client’s address is outside that subnet, the server response always goes via the VPN WAN regardless which way the client’s request came, so clients connecting to your PPPoE address get responses from the currently assigned VPN address which they ignore (or don’t get them at all because some stateful firewall in the VPN path drops them as it could not see the initial packet of the connection).
    So the simplest way is to force the traffic from the server to any destination via the PPPoE connection or, if you need clients to connect to both public IPs, to use the complete connection-marking approach as explained here (read the last paragraph of the post first to synchronize the context).
  • you permit both the /interface pppoe-client and /interface pptp-client to add a default route to your routing table. Whereas the forwarded traffic from hosts connected to your LAN is routing-marked by the /ip firewall mangle rules in chain=prerouting, packets sent by Mikrotik itself are not handled by these rules (check this set of diagrams to see why), so they take one of the two routes added by the tunneling protocols. So first of all it is surprising for me that your pptp tunnel doesn’t break once it establishes, but the default route provided by pppoe-client probably wins in most or all cases (does /ip route print while VPN is up confirm this assumption?). Second, the dynamic DNS service of Mikrotik’s cloud associates with your fqdn the IP from which it has actually received the registration request. So as you haven’t been very clear about the “url representing your address”, I suppose that you expect the clients to come to public IP assigned by the pptp, but you register to the cloud DNS the other one.

If some of my assumptions are wrong, it’s because they are assumptions, taken in absence of relevant information in your posts.