Crashes when loading a particular level B from a particular level A are normally either caused by a function that continues to run after level change, but accesses a now-removed object of the old level. Or it's an entity action of the new level.

Put a diag() call at the begin and after the wait() of all entity functions. This way you can see which function does not survive the first wait(). Similarly you can also find out which functions continue to run after level change.