1) If I am understanding your question correctly, you want to be able to know the best geography layer that should be rendered with the Auto mode for the current map scale. If this is the case, you can add an event listener on your map object for an extent change, and in the associated event handler, you can get the thematic mapping layer object's bestLayer property. This is usually the same as the geographyLayer property except in the case where the thematic layer on the map hasn't updated yet.
2) If you don't like the geography level that is chosen with the Auto option based on the current map scale, you can manually set the geographyLevelName property on the thematic mapping layer to whatever geography level you want. You could add some logic in your code to check whether the map scale falls under your custom scale ranges, and then set the geographyLevelName based on that. However, keep in mind that by manually setting the geographyLevelName to a lower level of geography instead of the one chosen with the Auto option, there is a chance that there might be a peformance degradation in the app. For example, setting the geography level to Block Groups instead of the Census Tracks which is the best layer for the current scale, will cause the thematic mapping layer to take longer to retrieve all the block groups for the current map extent and render on the map.
Hope these answers help you.