The action you posted contains an obvious bug in this line:

If (Main_Diff==3)&&(My.Flag3==0){ent_Remove(me);}

You have to terminate the action here. You must not use the 'me' or 'my' pointer anymore after removing the entity.

I don't know if that can be the reason of the player pointer problem. If you can't find the reason, I suggest that you strip down the level so that is just shows the problem, and then send it to me - I'll look into it.