How to set different languages for different domains, and display the language switcher accordingly?
A complete summary of the multilingual system for Drupal 7 can be found here: Drupal 7's new multilingual systems compilation. Specific to your question of "...some domains to have different languages", setting / detecting the language by domain can be setup in http://YOURSITE.com/#overlay=admin/config/regional/language/configure -> Detection and selection tab after the Locale module has been enabled. Details on the Detection and selection tab.

Notice that new to Druapl 7 this is now a weighted list that is processed to determine what method to use for the display language. The higher in the list the more likely that the method will be used.

In the case of you situation I suspect you'll have to write your own language selector to add to this list. I have to confess that the situation you describe sounds like it could better be solved in configuration that in code. Perhaps consider add the language into the domain in addition to the country - for example ca.example.com could be French: fr.ca.example.com and English: en.ca.example.com.