Repainting canoes is done all the time, with all kinds of paints. Most use an oil based paint, and many use “marine” paints. Some use various other paints intended for exterior use – house paint, porch and deck paint, etc. Oil-based gloss paints are most commonly used. Water-based paints can work, as can semi-gloss paints. They are easier to apply, and may be easier to touch up in the future. I have used semi-gloss water based porch and deck paint (see my avatar) for a paint job that I expect to last for only a couple of years before I replace the canvas – the chief disadvantage I have found with it is that it is not so easy to keep clean, a particular problem with the light yellow color on my canoe. When I recanvas, I will use an oil-based gloss paint.
No paint job is any better than its foundation – surface preparation is critical. Flaking paint indicates a problem with the surface you want to paint – the surface under the flaking paint. Proper preparation was likely not done when the now-flaking paint was applied, but perhaps you have some sort of incompatibility issues between the older paint and the flaking paint.
New paint will not keep old paint from flaking, so where you have flaking paint, it is important to remove it, and then take steps to make the new paint stick. Sanding the flaking paint away may be sufficient, as long as what is under the old paint is compatible with the new paint to be applied. It is probably impossible to determine just what is causing your flaking – incompatibility, or the canoe may have been waxed in the past, with the wax not removed before the last paint job, or . . . . So after sanding, at a minimum I would thoroughly wash the surface (soap and water, or TSP) and rinse completely, and let the canoe dry completely before applying new paint. It may also pay to use a primer (Zinsser or Kilz) intended to isolate problematic bases from paint.