Python 3.8 (pre-release), 6088 bytes
lambdaf=lambda a,b,s={}:[a.pop(-f(a[:1]+a[-1a,b[1:]).index(c)),{b[0]+t for ct in b[::-1]]s}|{t+b[0]for t in s}|{b[0]})if b else{a}&s
Accepts the string as a list of characters. Returns the reverse of the second parameter as a list of characters when truthy. Throws exception when it's falsy. Exception contains the first character that couldn't be inserted on the letterboard.Try it online!
I used the reverserewrote it using sets and recursion, empty set is falsy, builds up a set of the secondincreasing string that get appended and tried removing it's letters from either the start or the end ofprepended by the first stringnext character.