Not sure, but if you try to replace ord("!") to $21, cause maybe they not broken font_add_sprite, but ord() ? Or ord("!") - 6 (cause from second screenshot I can see that A is 6 letters to far).
( $XXXX is a hex representation in GMS, so $21 == 0x21 == 33, which is number of "!" character in ASCII/UTF).