Your nights at the Grand Canyon, staying in Flagstaff and Williams are kind of far out from the park, and are in the wrong direction from where you are coming from/going to. Rather than driving an hour to an hour and a half south every night (especially when you are coming from and then heading to Utah), I think it would be worth the extra money to try and stay closer to the parks. If you're camping, this would be a decent spot to spend some nights away from motels.

Your trip kind of has a lot of loops and spots where you'd be back tracking, or driving right by one place, and then going back to it at a later date. For example, it would make a lot more sense to try and fit in Bryce and Zion before you go to SLC instead of backtracking there from the Grand Canyon.

Yosemite is another case where you'd be driving right by it and then doubling back to see it a bit later. However, since it sounds like you've got a reason for that, then perhaps your trip from Vegas/Bryce to San Franscisco is the place where you fit in a drive along the coast.