It's intentional for it to be called on start. It's done for consistency, to ensure that callbacks are in the proper state and match the toggle.
after struggling with this for several days now. i do not think it is specific to the uitoggle. rather that the "check" texture is disappearing. i am using ngui prefab's.
also, the background of the colored slider disappears around 90% of the time. oddly enough it does appear at random though. this control is also a child to the same background sprite. all the controls/values are working correctly - its the disappearing texture that is the problem. weird because another slider background works fine that isnt related to that group of controls.
attached is a screenshot of the hierarchy. i will start over and see if the results are the same.
edit: adding everything as a child to a parent panel has fixed the toggles. it must have been some sort of depth issue in combination with bad hierarchy child.