I believe the problem is that the only non stop flights from Miami to London are on Virgin and it seems like Virgin flights arent always listed on Travelocity/Expedia/etc. I found direct from LHR-DTW and DTW-MIA, but then was only offered a flight with a layover from MIA - LHR.
Update: ...upon further research thats not true at all, but Travelocity is only offering me flights on Northwest once I have picked the original Northwest flight from LHR to DTW, so maybe they wont let you mix airlines? But that doenst make sense either, really... You may just have to call whatever website you'd like to use and book it that way. Or just book them seperately. You wont save any money by booking them all at once.
Update #2: Success on Expedia! Northwest from LHR-DTW, Northwest from DTW-MIA, American from MIA-LHR. You have to click "choose individual flights" at the top of your results and pick each flight seperately. Dont let them bunch the flights together for you, and you can get all non-stop flights.