get_pod_parser() is called twice in the file -- once to parse the file, and then again later on in another sub to get the wordlist back out. But the parser is instantiated fresh each time, because set_pod_parser() is never called -- so as a result, the wordlist stored in the object is lost!
The whole thing only turns out to work out most of the time anyway because Pod::Spell deletes the stopwords it sees out of the document it parses, before returning it.
The design of this whole module needs to be reworked, with more state passed around between subs rather than relying on the global variables that are intentionally forgetful so as to accomodate the usecase of being called multiple times on different files.