There already exists similar code for handling month names and source types.
If you download the template, you will find an xml part looking like:
<!-- other months -->
<!-- other source types -->
<sourcetype type="SoundRecording">Sound Recording</sourcetype>
So you could add a <states> element with the necessary abbreviations. You would then have to write your own format-state template and call that. Something like:
<!-- and so on -->
First the calling. Look for a piece of code like this:
<!-- Handle months and months accessed. -->
<xsl:when test="starts-with($name, 'Month') and string($source/*[local-name() = $name])">
Above it, add something like (untested):
<xsl:when test="$name = 'StateProvince' and string($source/b:StateProvince)">
<xsl:variable name="state" select="$source/*[local-name() = $name]" />
<xsl:value-of select="msxsl:node-set($data)/strings/states/state[@name = $state]"/>
You should extend this code to cover your needs: casing, what if names are missing or there is no match, what if you want to be able to disable if for some (option parameter), ...