When you say you changed the grid and raised the spike by "a bit," do you mean precisely 1 pixel? A bunny hop only makes at most a 1 pixel difference, so that would be necessary. You can be sure by checking the Y-coordinate of the spike while you're raising it.
Your V-align needs to be between x.305 and x.4. x.4-x.5 will allow a bunny hop, but it won't be a "good enough" bunny hop for the single jump bunny hop test (and as you probably know, x.305 is where you get a perfect bunny hop).
To be sure you're doing actual 5-frame jumps, note that a 5 frame jump is the highest that lets you go through a gate jump (4 frame is the lowest). I would test your macro. Note: the macro should press shift for .08 seconds, not .1 seconds as you might guess. The first frame of input doesn't count for any time. If you're playing in frame-by-frame, to perform a 5 frame jump, hold shift, and let go after you see the Kid rise for 3 frames. Note 2: slowdown doesn't mess up gameplay, at least with Cheat Engine. Den might be thinking about Hourglass, which is notorious for being glitchy.
I actually changed the grid by 2 because the hair of the kid was like in the same pixel as the spike and I hadn't even changed it to 1 because the sprite was literally touching the lower part of the spike, but then I remembered that the hitbox is a bit smaller than the kid's sprite. By the way, I thought that bunny hopping could make you jump 3 pixels higher (I heard it somewhere but I don't remember).
Thanks for telling me that a 5-frame jump is actually a 80 milisecond jump and for telling me how to do a 5-frame jump frame-by-frame, I really appreciate it
I'll send you my macro in a PM if you want (in fact it's an AutoHotkey script, the program I use to remap my keys).