Language ROMs are usually special case carts in that you can't just load and run without extra preparation.
Generally you need to change RAMTOP and re-open E: such that the screen is ~ $9C00, if the screen is left ~ $BC00 as in a 48K config then the program overwrites it and the user typing will corrupt the language program and probably crash it.
An easy way to do it can be to disable Basic while it loads, then re-enable Basic and have a CASINI routine that disables Basic again, calls DOSINI if required then runs the language via the cart vectors after disabling Basic via PORTB.
Doing it like that means the OS automatically will open E: in lower memory. Generally with a cart you need a DOS, so it not working via menu loader isn't really a problem.