Could be several things.
Too much advance, corroded wires, bad grounds but not likely the ign switch.
Check your timing.
Clean your grounds.
And then wire in a remote solenoid. It's likely heat soak on the starter/solenoid.
Here's a link on how to set it up.
http://www.oldengine.org/unfaq/solenoid.htm