OK, this will be a bit of a long one. This language family is meant to sit alongside the language with this phonology (O Kanã)
and figure in some important developments in that language's history.
I'll start with the proto-inventory.
*p *t *c *k
*b *d *ɟ *g
*m *n *j *w
*i *a *ɯ *ɔ in long and short plus *aɪ̯ *ɔʊ̯
There was also a vowel-harmony system, whereby *i and *ɯ did not co-occur, and harmony in affixes moved left to right. When either of the high vowels were present in the root, the non-high vowels were neutral with regards to harmony, but when they were not, *a selected the *i variant and *ɔ the *ɯ variant, with the harmony following on from there.
Syllable structure was (C)V(C), where onsetless syllables only occurred word-initially and the palatal plosives and the glides could not appear in the coda. Nasal codas assimilated in POA to the following stop.
Now for the classical language. This was the period when the language was first set down in writing, with a strongly phonemic abugida being used.
The biggest change between this and the above inventory was the loss of *p: it was lost as a coda consonant and merged with *w elsewhere, probably via *ɸ. The palatal stops had also likely changed to affricates by this point (see below).
/t t͡ʃ k/ <t c k>
/b d~ɾ d͡ʒ g/ <b d~r j g>
/m n j w/ <m n y w>
/i a ɯ ɔ/ <i a u o> in long and short plus /aɪ̯ ɔʊ̯/ <ai ou>
The vowel harmony remained the same, as did the syllable structure apart from of course the loss of coda *p. Original *d was now realised as a tap /ɾ/ intervocalically and after stops. Nasals continued to assimilate. It has been theorised that /t k/ in the coda had already weakened to a glottal stop /ʔ/ in the coda, since none of the descending dialects distinguish the two, however the writing system does distinguish the two, though this was likely only due to the affectation of educated speech. /g/ was also likely weakening by this point.
It was this stage of the language which spread its writing system to O Kanã
, and if you compare the inventories you can see why it was probably not a good idea to import it unmodified, which is how it happened. It is this lending of the writing system which lends credence to the theory that the palatals were already affricated since the character for <c> is used for both /t͡s/ and /ʈʳ/ in O Kanã and the character for <j> for both /ⁿd͡z/ and /ⁿɖʳ/ (the nasal allophones are more complicated, since the writing system thus loaned doesn't distinguish nasalisation, at least consistently).
The later descendant language show more radical changes. They all pretty much agree on the consonants. Coda /t k/ merged as /ʔ/ in the coda (as mentioned above); original /g/ was then lost (with compensatory lengthening in the coda), phonemicising the glottal stop intervocalically; /t͡ʃ/ became /s/ and /d͡ʒ/ became /d/ everywhere, merging with /d/ initially, but remaining distinct as original *d's [ɾ] allophone was phonemicised; finally, the glottal stop prothesis took place on vowel-initial words.
/t k ʔ/ <t k ‘>
/b d/ <b d>
/m n/ <m n>
/w ɾ j/ <w r y>
The vowels require more explanation, and an intermediate stage will help explain. Short /i ɯ/ phonetically lowered to /e ɤ/ (the harmony was preserved); long /ɔː/ was raised to /oː/ and /aɪ̯ ɔʊ̯/ were monophthongised to /ɛː ɔː/. This gives the following inventory.
/e ɤ oː/
/ɛː a aː ɔ ɔː/
It should be perfectly obvious how unbalanced this is, but the dialects took slightly different paths towards that goal. They all universally raised /oː ɔː/ to /uː oː/. However, northern and southern dialects differ in how they treat /a aː/. Southern dialects back /aː/ and merge it with /ɔː/, while northern dialect merge /a/ with /ɤ/ as /ə/ (/ɯ/ is realised as [ɨ] in those dialects). The length contrast was then lost on all the vowels, giving the common inventory of
/i ɨ~ɯ u/ <i ũ u>
/e ə~ɤ o/ <e õ o>
/ɛ a ɔ/ <ɛ a ɔ>
(the romanisation's not settled yet, I'm open to alternation suggestions)
The length contrast was reintroduced in open syllables through the loss of coda /g/, and of coda /d/ in most dialects except in the northwest, which retain it as /d/.
The vowel harmony is retained, and even further extended to include ɛ/a as well.
Finally, the coda nasals are sometimes lost with corresponding nasalisation of the preceding vowel. The eastern dialects lack nasalisation; the western dialects have it with both nasals; and the central dialects have it for only one of the nasals (/m/ in the north, /n/ in the south). For the western dialects the coda inventory is thus /ʔ b m n ː/.
Though onsetless syllables are no longer permitted, the loss of /g/ has resulted in the morphology causing vowel collisions, whereupon the following syncopations take place. The vowel resulting from this syncopation is always long. After the application of vowel harmony (where relevant), the horizontal position of the vowel is given by the horizontal position of the second vowel. The vertical height is determined according to the following chart (where H=high/close, M=mid and L=low/open):