I can give you a few basic rules:
The principle generality in the short vowels is that the a tends to remain in positions where the i and u do not. That is, historical short a is retained as קמץ in open pretonic position very regularly, e.g. דְּבָרִים 'words', whereas historical short i does so only if the previous syllable is variable. So, you say זְְקֵנִים 'elders' with צירי, but you say מִזְבְּחוֹת 'altars' with the צירי reduced.
So, just as a general phenomenon, the historical short a tends to hang around in more positions than do the i or the u.
u is the strangest of the three because it is the most easily reducible (it reduces even in pretonic position very frequently, e.g. בְּכוֹר 'first-born') but it retains its characteristic in strange positions, e.g. קֳדְשִׁים, which is the plural of קֹ֫דֶש 'holiness'. Now קֳדְשִׁים shows a reduced vowel, but it retains the quality of the historical short u, i.e. the o-quality commonly associated with historical short u. So, the historical short u is the most fleeting of the historical short vowels but also the one that tends to leave various kinds of traces behind that you are unsure exactly how to account for.
More specifically, a short a in a closed, unaccented syllable is usually retained, e.g. מַלְאָךְ 'messenger, angel', but sometimes it turns into a short i, e.g. מִשְׁפָּט 'judgement, court decision; manner'. This phenomenon is called 'attenuation', and it regularly applies to the first syllable of the prefix-conjugation in the Qal stem, e.g. יִכְתֹּב. It does not apply to I-gutturals though because there the syllable is not truly closed, e.g. יַעֲמֹד (what’s happening here is secondary opening).
For some reason, in the suffix-conjugation of the Qal stem the short a in the first syllable is lengthened when said syllable is pretonic, e.g. כָּ֫תְבוּ. This is despite the fact that it is a historical short a occurring in a closed, unaccented syllable.