It’s a good idea to keep a balance between number of canvases and number of objects! When you change something inside a specific canvas it will get completely rebuild! (each gameobject).
You can check out the asset called Woo Panels. It solves the problem of panel switching and navigation between menus! Will save you tons of time when creating UI. Also you can learn something from it. Here is the forum thread.
If you have a lot of different graphics for different scenes it does not make a lot of scene to have all the sprites loaded in all scenes.
If you can reuse a lot of pats of the canvas then it makes sense.