Perhaps something very basic. If the old text does not use Unicode encoding, then the ligatures will not work, since the pieces being looked for do not exist, as far as the program knows.
A bit more subtle would be if you've used, say, "theta" for a name, but your statements use the Unicode index, or vice versa.
For example,
sub pi omicron upsilon by pi_omicron_upsilon;
won't work if pi, omicron, or upsilon are *named* uni030c, uni03BF or uni03C5 in your "old text" document. Or even if just one of them is.
For debugging, I'd start assuming something like that, since you're getting scrambled text in English as well. An encoding issue. Remember, FontLab is quite literal, it won't equate a name with a Unicode index within a feature statement, and it won't make the substitution in a text (old or new) if the encoding isn't in the precise form it expects.
