I wonder if the problem is a max packet size issue. When applying IPSec the headers that are added to the packet increase the size of the packet. If the packet being sent from the end station is already max size (or close to it) the IPSec headers may make the packet too large. If the do not fragment bit is set (as it frequently is on TCP packets) it will cause the packet to be discarded.
A solution for this problem that I have used with success is to configure ip tcp adjust-mss on the LAN interface where end station traffic enters and leaves the router. You may need to experiment some to find the optimum size. In situations where I use IPSec with GRE I have found a value about 1375 to be optimum. You can experiment and see what is best in your situation.
HTH
Rick
HTH
Rick