I haven't seen this in routes I create (using Garmin RoadTrip, not MapSource). However, I find that if my route contains a stretch of road where I'm going in one direction at one leg and later on I'm on the same road going the opposite way, my Edge often gets confused about how far along in the route I am and tells me to make U-turns. The only effective workaround I've found is to break it up into separate routes that don't overlap.
BTW, for Mac OS X users, Garmin RoadTrip has a bug where it'll insert a string of non-Roman characters for map locations where it can't find a road name. When you download such a route to your Edge, it won't be able to display the route. One workaround is to manually edit the route to delete the non-Roman characters. An unpublicized alternative is to use Garmin BaseCamp (a free download) instead of RoadTrip. Garmin tech support says this is the recommended "fix" and there are no plans to release an updated RoadTrip that fixes this bug. You won't find this information on the Garmin website, and their more junior support staff don't know about this recommended solution.