I don't think there's anything wrong with the Hall sensor and you can run the same sensor off some magnets on a hand drill or fan to prove it. The Hall sensor already has a comparator so the LM339 is not needed for it.
Or you have a noisy 5V causing trouble, or the other coils (CDI and lighting) and magnets are causing side-effects. The Hall sensor wants the magnet perpendicular to its face, not parallel to it so is it even oriented properly?
But maybe the circuit's approach is not going to work?
First, the 555 is a fixed pulse-width (dwell) time- which does not cover both low speeds and high speeds.
You need the coil energized, storing energy BEFORE the spark event. The CDI module does this by storing energy in a HV capacitor.
A good dwell time at low speeds means the 555 cannot re-trigger at high speeds, there is no time. So it will stay on and there is no spark. Is this what is actually going on?
This is a small 2-stroke engine, I would think it really needs timing advance. Here some 50cc are limited to 30MPH.
edit: the rotor seems to have 7 magnets- 6 are for lighting and CDI power, and one just for ignition timing.