The game seems to use a fairly static memory mapping ...
$2000-$3fff Zero-Page, Stack, Fixed code segment (file handling, decompression, font drawing, etc)
$4000-$9fff Overlay code (Main Menu, Game, etc)
$a000-$bfff Streamed chunks (HuC6280 code with-or-without script language data)
$c000-$dfff General switched-bank for decompressing/uploading graphics to VRAM
$e000-$ffff CD BIOS
All game text (that I've seen, so far) is within script-language "strings".
The scripting language is pretty sophisticated, and they seem to have been nice enough to try to keep it located at the end of overlays/streamed-chunks ... but all the addresses are hard-coded, so scripts could actually be anywhere.
The PC for the scripting language is in zero-page at $37,$38 (or $3a,$3b in Xanadu I).
Unfortunately, they were a bit "undisciplined" in how/where they set the script-pc so it's an unholy mess to be sure where scripts are referenced.
Each code overlay contains it's own version of the script interpreter, with functions to modify the script-pc in different places (and potentially with different byte-codes for the actual scripting language).
The streamed-chunks either modify the script-pc directly, or call functions in the overlay to do it for them (the locations of which depend upon which overlay the script-chunk is used by).
There appear to be 570 different streamed-chunks in the game, of which only 236 actually contain script-language (as so may contain text).
That probably just means that I've not identified all of the many functions that set the script-pc, yet!
[EDIT]
That's definitely the case ... I'm currently able to detect "script" in 534 out of the 570 streamed-chunks. Getting better!