Is there a reason why you are using your own method for the movement?
About the animations, the problem is that you are setting the animation to neutral every tick with an event inside the MeMovement group. This probably worked before because you had the events arranged in a different order, but since you have this one first, it takes priority over the events that control the other animations. If you don't want to change the order, just create a condition on the neutral event that says "if keyboard key D isn't down" and repeat this condition for each movement key.
For the bullet, you need to create an instance variable on the character (call it player_angle for instance), and when you push a key to change direction, change that variable to the right angle (if you push D, set the angle to 0, if you push S set the angle to 90...). Then after you spawn the PBullet, change it's angle to the player_angle instance variable.