Pure IPSec in Mikrotik does not let you route over the tunnels. What happens is that the IPSec policy see’s the source and dst address that you have selected, and then pushes it through the IPSec process to be sent to the other site. If you wanted to run routing, you need to run another interface and use IPSec to encrypt that traffic, like EoIP or L2TP.
Chances are you need a NAT rule that will not change the Src or Dst address for traffic that is supposed to go through the tunnel. It is also possible you have some firewall filter rules that are blocking the traffic at the remote site once the traffic comes out of the tunnel.
Some do. Search for virtual tunnel interface (VTI). It’s a heavily requested feature for mikrotik. For the moment though it’s not supported unless you use another tunnel (GRE/IPIP/EOIP/L2TP) as feklar mentioned.
My thought would be configuration (not that there haven’t been bugs but basic IPSec is pretty stable in my experience).
If you use plain IPSec in tunnel mode you need to ensure that your IPSec policies capture the right traffic (from your local to remote subnet) and your ‘NAT bypass’ rules are above your masquerade rules as mentioned by feklar. Then that method should work.
If you want a routable interface (until we get VTI) setup a GRE (or any other type but gre can be used with other vendors) tunnel over IPSec. Then you need to ensure you can ping the public IPs;. your GRE tunnel is connected and reachable and that you have appropriate static or dynamic routes defined to send your remote subnet traffic via the tunnel (your subnets Mik on each side would need a route using the GRE interface or remote IP of the GRE tunnel as gateway).