AQs far as I know, MSCALE has never been tested with the ENSEMBLE routines. It works (and has been tested) with REPD, but not ENSEMBLE as far as I know (although I admit I have not explicitly tested - it might be worth a quick try in the off chance that it works). This will likely be fixed in a future release, but it doesn't help for the moment unless it just happens to work.
As much as I hate to suggest such a hacky (and slow) band aid, you might need to have your code call CHARMM through something like an MPI_Comm_Spawn (which is what MSCALE does) with the stdout piped back into the calling process. You would then have to parse out the CHARMM energy for use in your program.
Without diving deeper into the ccrash you get from the MPI process, I am hesitant to make any further suggestion. Do you happen to have a stack dump from the core file produced? It might at least indicate what part of CHARMM has gotten out of sync.