I don't have my computer around right now, but maybe the issue is that I'm not updating every tick? The sprite objects containing the characters are created at the start of layout only, for performance reasons.
I'll try what Telles0808 suggested and update it on every tick... but I really think it shouldn't matter, you should always get the post-cropped size using .ImageWidth regardless of when.
Thanks!
Leo.