
Making this system is by no means an easy task, and there are many questions that rise up when you actually think of it, so here are some suggestions on technical side of how it might work.
Have the canal building similar to building of the wall, with 90 degrees angle turns and treat each section as a corner post, allowing to build them only on flat or slightly curved surface as well as connecting them to a pre-existing rivers, lakes and previously build canals. Make a restriction on canal width (ex. 5-10 square tiles) while still making it possible to build L, T and X shape extensions for turns and intersections. Add another restriction to disallow placing canal construction signposts parallel to another canal construction section or an already built canal at a distance less than the width of the largest canal (or canal construction site signposts) if the parallel canals are not merging (distance between canals is 1 or more tiles apart). And don't allow building more canal sections if they trigger any restrictions on already built sections.

For construction materials make it rocks or sand, or anything really + water of course, and let it possible to "build" water in the construction signpost using close by barrels and water tanks, as well as inventory water from flasks and buckets, but not from water wells, rivers and lakes (to prevent people from making a small section canal and build from there for free). Also make all the canals shallow water only, and allow people to fill shallow water back up with soil to remove them easily (either all shallow water or only canals).
Another few suggestions to consider if canals become a thing, is making all canal water q10 and have no fish and clay in canal water, to prevent people from getting an easy and safe access to water resources. Also don't allow building canals in the mines.
Please leave your comments with support and most importantly try to challenge this system trying to find what could be wrong with it and how it can be abused, to polish this idea and make it possible!