using birdnames.scientific() on a list of already scientific names results in key error
This is probably because the scientific name is used as the lookup index, then it tries to map this to scientific name column (but there isn't one).
The conversion behavior should be: if mapping to scientific name of the same authority, and name is already scientific name, just return the input value