Hi Craig,
One thing you can do is when you using the chrome and open the developer tools and check the network tab, every time when you type something on the search widget bar, you can find the web requests that generate from javascript client and make sure the maxLocations parameter is right as you put in code, sometimes you may put the wrong location and the parameter not honored.
Please take this snippet code as a reference:
You need to put the maxLocations under geocoder object not geocoders, the reason is because you add geocoders into geocoder to use your own composed geocoder.
var geocoders = [{
url: "http://nwu-win7.esri.com/server/rest/services/AtlantaGeolocator/GeocodeServer",
name: "AtlantaGeolocator Geocoder",
singleLineFieldName: "Single Line Input",
autoComplete: true,
}];
var geocoder = new Geocoder({
map: map,
geocoders: geocoders,
autoComplete: true,
autoNavigate: true,
minCharacters: 3,
arcgisGeocoder: false,
maxLocations: 1
},"search");