In TeX hyphenation of text is dependent on the language in force, which technically is the current value of the integer register
\language. Technically hyphenation rules are loaded by selecting the language (setting the register to some number representing it) and then loading a set of hyphenation patterns via the
\pattern command. This is one of the commands that in traditional TeX can only be used while format generation is possible, so normally the languages are already predefined in the format that is loaded at start.
On top of those base rules one can use the
\hyphenation command which alters the rules of the "current" language, i.e., in a multi-language document one first have to switch to the right language and then give the desired
\hyphenation execptions. From that point on they stay available for this language, so whenever the language is select they will be used.
So to cut the long story short: yes you need to prepare several languages (with identical patterns) then add the desired
\hyphenation exceptions to some of them and then switch between them as needed. The Babel system has a method of providing new languages but this is not daily user stuff, so you will need to dig a bit to see how this works.