Robert,
I'm not sure that I understand your issue completely, but I'll give it a shot.
In 3.14, instead of using esri.basemaps, you can create your own basemap instance using the Basemap and BasemapLayer classes. You can then pass your own Basemap instance into the BasemapGallery. I did this with the Stamen toner tiled layer in this bin: JS Bin - Collaborative JavaScript Debugging
You mentioned map.setBasemap in your last comment. I don't believe you can use setBasemap() to switch over to your own. BasemapGallery and BasemapToggle will allow you to do this, however.
That being said, this will all be easier in the 4.0 API. You can already see how much easier it is by taking a look at this sample: JS Bin - Collaborative JavaScript Debugging where I create a Stamen basemap and pass it into the BasemapToggle widget.
What's different about this sample is that not only is constructing each instance simpler, but you can also use the new basemap instance to set your map's basemap. In 4.0, instead of map.setBasemap(), you can set it directly on the basemap property like this:
map.basemap = stamen;
That's all there is to it! Go ahead and try it in the sample I referenced: JS Bin - Collaborative JavaScript Debugging . Open the console and type map.basemap = stamen. Then try switching to the others as well.
Hopefully this helps answer your question.