The reason I have not provided a pronunciation guide for the initials of Basic TCC is because they are supposed to be interpreted differently depending on what language you are after, and also to give some flexibility on the speaker depending on their background. (I have put novel points I’m making into block quotes.)
Despite this, the initials have an implicit official pronunciation, which I have intentionally left out because of the above reason, though they will be apparent to anyone who has studied Middle Chinese. While these pronunciations have been mentioned a few times before, I have never made an “official” post about it, so here I will attempt to make one.
I will divide the consonants into rows and columns based off of the table in the current version (as of 5th June, 2015) of TCC. The rows are: labial, alveolar non-sibilant, retroflex/palatal non-sibilant, velar, alveolar sibilant and palatal/shibilant. The columns are: tenuis, aspirated, slack-voiced/muddy/breathy-voiced, nasal, voiceless fricative, slack-voiced fricative and sonorant/approximant.
The aspirated column is generally recommended to be pronounced aspirated as this is the most basic distinction found in Chinese varieties. If you speak a language that has aspirated voiceless consonants, it is permissible to pronounce both the tenuis and aspirated columns as voiceless aspirates, though speakers of languages without aspiration would be recommended to pick up the aspiration distinction (for speakers of such languages, some affricates may be inherently aspirated, hence the use of <ts>). Among the aspirated column, “ph” may be pronounced “f” if you are aiming for (learning or studying, or just giving the TCC a feel of the language) or are a native speaker of Vietnamese, and “kh” may be pronounced [x~h] if you are aiming for Vietnamese or Cantonese, though it is not recommended to merge all “kh”s into “h”s if you do aim for Cantonese.
The voiced (muddy) column is recommended to be voiced phonetically (”officially” without breathy voice). However, since voiced non-sonorants do not appear in many Chinese varieties, it is permissible to pronounce them as voiceless (or merged), and even aspirated depending on the tone if you are aiming for Guan or Yue Chinese. Likewise for the voiced fricatives, they may be slack-voiced, fully voiced (albeit a bit awkward when coupled with voiceless stops) or fully voiceless.
The retroflex/palatal non-sibilant series has previously been reconstructed as more accurately alveolo-palatal and as such these symbols have been used: ȶ ȡ ȵ. More recent reconstructions reconstruct them as retroflex. To make a more neutral representation, I have chosen to use the dot-below in the current revision (previously merged with the alveolar series). These may be pronounced (alveolo-)palatal, retroflex, alveolar (like Min), or be merged with the shibilants (like Standard Mandarin and a few other Chinese varieties) and then possibly even merged with the sibilants (see the shibilants section).
Note that “nr” has already been merged with n- in most non-Min Chinese varieties though it seems to remain distinct from the Middle Chinese “n” (The MC n- corresponds to Hokkien l- but MC nr- corresponds to n-), however it is only through observation and I have not done enough research for a strong conclusion. However, if this distinction is indeed kept in Min Chinese, it would probably be a good idea to add back this distinction to TCC, which has been left out in Chao’s General Chinese.
Now for the velars. “Ng” is generally recommended to remain as “ng”, though if one really has difficulty pronouncing it, it may be omitted (as with Mandarin), or replaced by [g] if they are going for Japanese (or Min for that matter). “H” and “gh” may be velar or glottal, though pronouncing them as velars may keep with the consistency in the table (which is the main reason I implied the shibilants to be palatal instead of retroflex). In the original Middle Chinese table from the rime dictionaries, “h” and “gh” have not been grouped with the velars, thus pronouncing them as glottal would be completely acceptable. The grouping with the velars is based on a more modern convention and is employed to save space. Also note that it has never been mentioned officially that the k- row in TCC are velars, and that it was only implied, and is thus open to interpretation. Additionally, “gh” may be pronounced as [g] by speakers of English (for a natural flow in English) or if you’re going for Japanese. I personally may sometimes pronounce this as uvular as [ɣ] is not a sound I am too familiar with. Thus, realizations of this sound include: [ɣ, ɰ (for Spanish or Portuguese speakers), ɦ, x, h, g~k, ʁ, χ]. Additionally, the cluster “ghw” may be realized as just [w~ʋ] if you are going for Cantonese or Hakka or even [f] (from xw~hw) like in some Hakka varieties. As for the use of <w>, it has reasons regarding Cantonese, Vietnamese, Korean and Japanese. For instance: 雲 (Canto: wan4, Viet: vân, Kr and Jp: un, Man: yún). The <w> may correspond to the 喻 or 影 initial (in the current version of TCC) in MC and may thus be interpreted as [j] in Mandarin, creating “yun“. The use of <w> and <y> (or even <gh>) is just like General Chinese: they are dependant on the modern pronunciations of Handzi.
The palatal series of shibilants may also, as previously stated, by pronounced as retroflex, though personal attempts of a retroflex shibilant + [i] or [y] clusters have proven to be difficult, and that is likely what caused them the vowels to lose palatalization in Mandarin in the first place.
If we go by the theory that the 知 group of initials (Baxter’s tr-) are retroflex, this would mean that the retroflex non-sibilant series had the tendency to come before high front vowels, as opposed to what one might expect given the difficulty of pronouncing high front vowels after retroflex shibilants. This has been something that I have not found to be too plausible, though the evidence from the Vietnamese tr- is still rather strong, and the group would later be merged with the shibilant series in modern non-Min Chinese, causing the following vowel to lose its palatal element in Mandarin anyway. This is worthy of being looked into in my opinion.
Related. my choice to refer to the 照 series as “shibilants” is so as not to insert the designation of whether it is “palatal” or “retroflex”. This obviously does not apply to the TCC gn- or y-.
Now the shibilant-sibilant distinction has been lost in many varieties of Chinese, even non-standard Mandarin dialects spoken in parts of China. Thus it is also accepted to pronounce the shibilants as sibilants, which would mean that the retroflex/palatal non-sibilant group could also be pronounced as sibilants except for “ṇ” (娘).
Perhaps a more effective way is to say “retroflex/palatal stops” since “n” has the tendency to denasalize to [l] in Chinese as opposed to the stop [d].
The one thing I haven’t covered is “mh”. As one could tell from the orthography, I personlly recommend a nasal.
However, it likely denasalized into an approximant (not stop) before being merged with /w~u/ in Mandarin.
The reason is because out of the Sino-Xenic pronunciations (referring here to Kr, Jp and Viet) plus the two Chinese varieties I am most acquainted with, [m] is more common than [w] (<v> stood for /w/ in Middle-Vietnamese word-initially). Thus my preference is <mh>. Practically, it doesn’t have to be pronounced [ɱ] by users. It could be pronounced [ʋ] and then merged with [w] or [v], though I would recommend it being merged with [m] after “approximating [ɱ]“.
Also note that the CTCC isn’t supposed to be a transcription for TCC pronunciation, and is more a [morpho]phonemic analysis of Late Middle Chinese. An example would be the CTCC “æ“. The CTCC -(ɨ)æn and -iæn (the 2nd and 3rd & 4th divisions of the rime class “山”) are -an and -ien respectively and are pronounced /an/ and /jɛn/ in Basic TCC, not with [æ]s.