Workaround no-workie. I tried various flavors of no-ops, couldn't get it to clear the issue. I'll try a build next.
[Edit]: Correction, I was able to clear the issue. 'Initializing' the string works perfectly:
(StrCpy @temp50 "")
(Format @temp50 {%s %d} @temp0 gScore)
Which is strange because I vaguely remember doing this before in other circumstances, probably for the same reason (SCI0 games). This may be a really, really old bug going back to Companion 2?
Couldn't be, because it doesn't happen in SCI0: it only happens for games that use separate .scr and .hep resources. It will occur when the code offset of the lofsa/lofss instruction (which loads a string/instance/said pointer into the accumulator) in the .scr resource is the exact same number as the offset of a string for a class property value in the .hep resource.
When that happens, the wrong string pointer can get compiled into the code. So adding some more code before the offending string will cause the code offset to change (and likely the bug to go away, until it lines up with something else).
So in your case, the place that referenced the {%s %d} string ptr was at offset 2353 (for example) in the .scr resource, and the name property value for the lb2FtrInit instance was at offset 2353 in the .hep resource.