sounds like the zip slider is distorted. get a new slider from the sailmaker (assuming it is a cover or similar.
I recently had to redo the slider on my lifejackets. I chopped of the bottom of the old zip, got an exact zip from a haberdashery (using a micrometer to ensure zip compatability) removed the slider from the new zip and just stuffed the end of the old zip into the new slider and pulled it up. If you want to keep the zip joined atthe bottom, zip it up and then sew the bottom of the zip together.
If it has come off the track is probably damaged and even if you get it back on it'll come off again, or you'll damage the track putting it back on or the slider is worn.
Carry a few safety pins in your trouser pocket for emergencies. You won't believe how difficult it is to buy them whem you need them.
If the slider is metal you could squeeze it together with pliers. Make sure that it is on the zip first ! This sometimes works though it normally means that the zip has had it.