Well, you know a japanese letter is 2 times larger than a US letter, so for for every letter, you can use 2 American letter.
Have you checked in game that the lower ascii charset is really mapped in game ? A lot of game use the sjis mirroring of the A-Za-z glyphs to implement them, and thus, they do not read strings one byte at a time and check the first half-byte to see if it needs an additional byte ( the proper decyphering method to read sjis, or by extension utf-8), and instead they read it two bytes at a time and use a simple array mapping between some shorts and glyphs.
For some game, it's even funnier. In JUS the lower ascii charset was not mapped, but the game font file format was well thought and there was room to add it.
Another thing, is that doubling the number of characters is likely to freeze the game at some point, for example if the game uses one sprite for each letter in the displayed text, it can use at most 128 letters, if some other part of the graphics is also using the sprite engine, it can use even less. Now you have an issue when the game assumes that the total number of sprites needed by the text is under a certain limit, and it uses the rest for some graphics. When you change the text, it breaks the assumption and the game is again likely to crash...
About text is the arm9 binary, I strongly point you at IDA pro, which is a very good disassembler, really helpful to make your way trough such game. Instructions are available on my website :
http://deufeufeu.free.fr/wiki/index.php?ti...ineering_DS_ROM
Hope this helps...