I was actually was just using the fireball's sprite itself to check for all the collisions, except I had "Use fine detection" not ticked.
I looked at what you said and realized that I'm currently animating the fireballs by changing their angles in the event editor, so maybe that is causing the hitbox to rotate as well and cause improper collision detection.
Looks like I'm right, I stopped animating them and made it so the horizontal loop runs BEFORE the gravity one. Now when I shoot fireballs against a wall, they explode immediately as should, and they don't explode when they hit the ground while falling at a fast speed.
This means the only issue I have now is the fireballs spinning animations. I believe I need to create a separate hitbox object (to do all the collisions) and create 1 for every fireball I have and constantly update each one's position to follow the fireball they're tied to.
Any ideas on how to go about this? Most of my fireball's events consist of ForEach loops and then FastLoops.