Since I have a 1999 Rebel like yours, and I knew that there were a few switch settings that would allow the starter to engage, but not allow the bike to run, i.e. NO SPARK, and since I am not sure if you have completely ruled out switch problems as the culprit, i decided to document all the switch settings and accompanying operation on my Rebel.
---Thanks for you time! I can't describe my current level of frustration.
If the kill switch is in the run position and operating correctly, there are no other switch positions that both allow the starter to operate and prevent the bike from running. There are several combinations that will prevent the starter from operating as well as prevent the bike from running, but if the kill switch is on and the starter turns, the bike should crank and run.
---Yes, kill switch in RUN position, the starter works every time and no spark. (Also took it apart to examine and it grounds when off and properly moves away copper contact when in RUN)
However if the kill switch is OFF, the bike will not run, i.e. NO SPARK, regardless of other switch positions. However there are a few combinations that will allow the starter to operate, even though the bike won't run.
---No spark.
If the bike is in NEUTRAL, the starter will operate regardless of whether the clutch is IN or OUT, or the kickstand is UP or DOWN, but the bike will not start with the kill switch OFF.
---The bike is in neutral. Removed and verified that the kickstand switch works replaced and retract kickstand when testing bike for spark. Removed and verified that the clutch switch works(with multimeter) pull in clutch lever when testing for spark.
Also, if the bike is in gear 1-5, and both the clutch is IN, and the kickstand is UP, the starter will also turn, but the bike will not crank when the kill switch is OFF. The starter will not turn if either the clutch is OUT, or the kickstand is DOWN, when the bike is in gear.
---In Neutral, green light is on and I can easily push bike, verified. Kickstand UP. Clutch IN. Starter works but no spark.
Therefore, unless you have 2 switches that have both gone bad at the same time, the only switch that can malfunction by itself and cause your problem is the kill switch, if you have all the other switches set correctly.
---And the KILL switch to allow the bike to work needs to break contact and it does when pushed down to RUN.
Try cranking the bike with it in NEUTRAL, and the clutch IN, and the kickstand UP. The starter should operate regardless of the setting of the kill switch, but only have SPARK with the kill switch set to RUN.
If that doesn't get you SPARK, then in order to completely eliminate the OFF function from all switches, and therefore rule out any switches as the culprit, just temporarily disconnect the black/white wire from the ignition control module (CDI). This takes away the possibility of grounding the ignition, and it should have SPARK and RUN regardless of the switch settings if the starter will crank the engine.
---No SPARK. What!? I didn't try this. Who didn't tell me to try this before I removed and tested and replaced all the stupid switches!?!? I am about to permanently remove that wire to disable any additional future faults. I will try this tonight with the old and new CDI modules I have at home.
If it will now SPARK, the problem is in the switches. If not, then the problem is in the ignition system itself, and the switches have nothing to do with it, and can be ruled out.
A note of warning though if you do this, all of the safety switches will be disengaged, and neither the ignition or kill switch will shut the bike down. You will have to choke it down to stop the engine. This is just for testing, and you should reconnect the wiring after you find and repair the problem.