I need a way to translate shortened/alternative spellings back to their original name.
Example: Tom -> Thomas, Ben -> Benjamin
Are there any datasets that you know of that could help with this?
Using keywords hypocoristic and diminutive, one can find the following links:
Finally, there is diminutives.db on GitHub:
The databases of diminutives,
female_diminutives.csv, are manually-edited versions of data that was automatically extracted from Wiktionary by the PHP script
It sounds like you may be looking for what librarians call an "authority file". You can reference the links posted for a starter, but may find that not every diminutive links back to the same given name and/or that some people prefer to be known by the dimunitive, not the given name.
Usually, your goal is to standardize names (hence, "authority file") rather than insist that they fit a specific pattern.