The code in your question as presently shown does not produce the result that you describe. All I can figure is that you are entering input like this:
hexList = {16^^12, 16^^10, 16^^6b, 16^^3f, 16^^92};
If that is the case you need to understand that these numbers are immediately and transparently converted on parsing; this is merely an input shorthand.
FullForm[hexList]
List[18, 16, 107, 63, 146]
To put it another way:
HoldComplete[{16^^12, 16^^10, 16^^6b, 16^^3f, 16^^92}]
HoldComplete[{18, 16, 107, 63, 146}]
So not even HoldComplete preserves the input format.
Update
Based on the comments under Steven's answer I believe you are doing this:
hexList = BaseForm[{97, 106, 100, 118, 42, 51}, 16];
hexList[[1]]
{97, 106, 100, 118, 42, 51}
This happens because BaseForm is merely a formatting wrapper. Observe:
InputForm[hexList]
BaseForm[{97, 106, 100, 118, 42, 51}, 16]
The first part of that expression is the decimal list. If formatting alone is adequate you would get a better result by mapping the wrapper across the list:
hexList2 = BaseForm[#, 16] & /@ {97, 106, 100, 118, 42, 51};
hexList2[[1]]
6116
You still cannot perform numeric operations on this object:
hexList2[[1]] + 15
15 + 6116
Instead you could create your own head hex with certain properties, including formatting. As a limited example (addition only):
Format[hex[n_]] := BaseForm[n, 16]
hex[n_?NumberQ] + m_?NumberQ ^:= hex[n + m]
hex[n_?NumberQ] + hex[m_?NumberQ] ^:= hex[n + m]
hexList3 = hex /@ {97, 106, 100, 118, 42, 51};
hexList3[[1]] + 15
7016
hexList[[1]], it properly gives me 61. So you're still missing something. DoFullForm[hexList]and see what it gives you. – amr Sep 25 '12 at 17:21