I'd have to see the code and the collision shapes to have a better sense of what's going on, but it's worth noting that sometimes the 'hit from (direction)' blocks can be finnicky. Usually what I do is just check for a collision--not from any particular direction--and then check the y coordinates of the two actors.
For stomping, you can check if ((y of the player) - (some percentage of the height of the player)) is greater than (y of the enemy).
With this approach, you'll have to play with the percentage so that a collision from the side doesn't count as a stomp.
Another alternative to using y coordinates would be to compute the angle from the enemy to the player. If the angle is in the range of 270 +/- (some amount) then the player is landing from on top. If you use this approach, start with +/- 45 and see if that works. There's an easy math extension you can use to get some more math blocks to do the calculation. Just be sure to compute the angle from the centers of the actors (x,y of self + half width,half height of self).