The topic you want is Unequal Error Protection (UEP) codes. There are a number of constructions in this area and a google scholar search yields quite a few hits.
Intuitively, imagine partitioning your code into disjoint point clouds, where cloud centres are chosen by the more important bits, thus intra-centre distance is high, hence those bits are more robust to noise.
On linear unequal error protection codes, B Masnick, J Wolf - IEEE Transactions on Information Theory, 1967.
Multilevel codes for unequal error protection
AR Calderbank, N Seshadri - IEEE Transactions on Information Theory, 1993.
A more information theoretic perspective is the Borade et al paper here on the arXiV.
Lastly, Prof. Lloyd Welch published a nice paper on "Codes correcting selected error patterns", which I can't seem to find a reference to.