I know of another user who had issues with voip.ms. In his case the issue was that voip.ms was sending a burst of GSM before switching to PCMU. He eliminated the issue by disabling all codecs except PCMU on the FS <--> voip.ms configs. You may want to double-check the voip.ms configs and remove everything except PCMU.
OK, so I gave up on bypass media, but now I have another problem. This time I set up freeswitch to communicate with voip.ms using PCMU codec (configured in my external profile), and use iLBC on my phone (codec configured in my internal profile, where the phone registers). When I call my mobile it rings, but when I pick up all I hear is a high pitched squeal. Am I missing something here?