I think the main point is that you may be asking the wrong question:
I would like to ask why do they appear?
They were there from the beginning. A better, and easier question to answer is:
Why did we stop pronouncing them?
Well, simply because we tend to simplify pronunciation in order to avoid breaking our tongues. Speakers of English generally have a hard time pronouncing some specific series of sounds, especially consonants.
The combination gm is an example of that, as is mn. If we can split the two consonants up, so they are pronounced in different syllables, there is no problem: it's not different from pronouncing the two sounds as if they are in different words:
He's a big man.
I don't like ham nor cheese.
However, when these two consonants end up in the same syllable, many speaker will have difficulty pronouncing them, so they will end up leaving out one of the letters.
n, but dam / nation
gm, but phleg / matic
As for the a in practic
ally, that is simply a case where speakers tend to drop vowel sounds if they are not really necessary to aid pronunciation. Where gm is diffcult to pronounce for an English speaker, kl followed by a vowel sound is easy (think of clay, climate, etc.) However, kl at the end of a word is not easy, so there we do pronounce the a again.
What remains is of course the question
Why are those letters there in the first place, if they make words hard to pronounce?
Often that's because they were there in the version of the word as it existed in another language, from where English borrowed it. Often (some of) the original spelling of a word is retained when a word is borrowed, because it makes it easier for people to understand the origin (and hence, give them an idea about the meaning).
In some cases, the spelling of English words has even been changed to reflect this etymology, even when the pronunciation was wildly different. The word colonel is a great example of that. It was actually borrowed from Portuguese as coronel, and pronounced based on that spelling (ker'nel) but in order to reflect its Latin / Italian origin, the spelling was changed to colonel with an l. Nobody bothered to start pronouncing it that way though...