I don't understand what you mean when describing pull in coil and hold in coil. The solenoid has one coil, that when energized pulls the slug into the magnetic field and the starter clutch (bendix) into the ring gear while simultaneously switching on the starter through internal contacts.
If you are referring to the starter relay as the hold in coil, then it can be checked for continuity between contacts 85 and 86 (coil) and contacts 87 and 30 (when energized).
In normal operation the case of the solenoid is tied to negative.
The starter relay should operate whenever the ignition switch is on and the start switch is pushed regardless if the solenoid is connected to it or not.
It's possible the contacts in the starter relay are corroded or burned (terminals 87 & 30), which would cause inconsistent voltage to the solenoid and allowing it to drop out or chatter.
It's possible the battery has insufficient current to energize the relay, solenoid and starter.
It's possible there is low voltage at the starter relay either from a defective battery, defective start switch, or faulty wiring.
It's possible the starter is defective and pulling excessive current from the battery causing the solenoid to drop out.
It's unlikely the internal contacts for the starter (in the solenoid) are bad as the solenoid would still energize.
It is also possible to have an intermittent break in the solenoid coil windings, that can open under a current load, de-energising it and dropping out the starter clutch (bendix).
The problem you're describing is usually the result of a bad battery or corroded battery cable connections.