In most places, urban settlements are governed by administrative entities (i.e. municipalities) that are roughly equivalent in extent, and share a name with the settlement. This is not true in Ontario, where many towns (and almost all villages) are part of larger municipalities, which often have different names than their principal town or village, and include vast rural hinterlands. This state of affairs is principally due to the wave of Ontario municipal amalgamations around 2000.
For example, Trenton on Lake Ontario is a town in the municipality of Quinte West, which also includes the villages of Frankford and Wooler. Almonte is in the municipality of Mississippi Mills, which also includes the villages of Appleton and Pakenham. Some municipalities have multiple, roughly equal settlements, like Norfolk County.
This state of affairs is a significant issue for mapping towns in Ontario. I believe the best solution is to map each distinct urban settlement with its commonly understood name (whether or not there is a municipality of that name), and with a tag corresponding to its size/prominence. For instance, Trenton should be a place=town, and Frankford should be place=village. Qunite West should be a administrative boundary relation, with Trenton as its admin centre. This corresponds best to local usage - businesses and people from Trenton will rarely say they are from Quinte West, but will instead say they are from Trenton. It also works well for municipalities with multiple urban settlements, since it does not require choosing which one is the “real” centre of the municipality. The alternative tagging scheme (of mapping Quinte West as a place=town and Trenton as place=suburb in pretty much the same location) does not follow local usage.
As a general principle, whether a urban settlement is a town or suburb should depend principally on how distinct it is from nearby urban settlements, and whether it is a town or city should depend on that and its population. For instance, Trenton is a urban area which is distinct enough from Belleville and nearby areas to be called a town or city, and its population suggests it should be a town. Administrative boundaries are relevant here, but they do not override everything else.
It is a mistake often made to rely too heavily on official data sources when editing OSM. Official data sources are best when adding data (like buildings), but should be used with caution when modifying data.