Thanks for the analysis!
I think the problem is that nlp.vocab.set_vector should be adding the word to the vocab, but isn’t. This is a bug in spaCy.
For now, you can work around the problem by adding the word to the vocab explicitly. Adding the line lex = nlp.vocab[orth] before setting the vector should take care of this.