Going out on a limb here, but does '-l eng' on its own deliver any text for you?
The next thing I would look into, if I were you, is whether my 'eng' traineddata has the same (lstm aka v4, I suppose) support listed as your gdt traineddata. I've seen it happens where those do not align.
There's a tesseract tool to list the traineddata engine features (forgot the name/cli Argos, sorry) and one to merge traineddata files (combine_something, but I have to look it up, so you'll be as fast as me with Google + doc search), but my *hunch* is that you wont need the combine tool; what I've seen so far is tesseract picks an engine (psm setting drives this, IIRC) and then pumps the image through all loaded languages on a segment by segment basis. (IIRC, so YMMV ;-) )
(The bit I'm wondering about now myself is: there was some sort of criterium in there, in the code, when to decide to try? or use? multiple lang results; it just /might/ be that's causing trouble, but I would have to dig deep into the code for that and it doesn't rate above "wild crazy guess" anyway, so better take the same route and check your installed 'eng' database is doing what it's supposed to, on its own, first.
The next sane thing to try is flipping them around, ie "eng+gdt" instead of "gdt+eng", to see if results change and /how/, as that might give us all a hint about what's going on in there.