On the blood serum B12 measurement, it's true that it isn't very useful unless
it's low. If it's low, it indicates B12 deficiency. If it's normal or high,
though, it doesn't mean the the B12 situation is O.K. The reason is that there
are two carriers of B12 in the blood, transcobalamin and haptocorrin. Most of
the B12 in the blood is bound to haptocorrin, and this B12 is not accessible to
the cells of the body, except liver cells. Only the B12 bound to transcobalamin
can be given to the other types of cells in the body.
The other issue is that even though the overall B12 status may be O.K., it
doesn't mean that the B12 is being used properly in a functional sense. It has
to be taken into the cells, stripped first of its ligand (cyano, hydroxo, aquo,
methyl or adenosyl) and then converted to one of the coenzyme forms (methyl or
adenosyl). If there is a problem in this processing, the B12 will not be able
to be used properly. The best indicator of this is methylmalonate, as you
mentioned. If it's high, there is a problem in the production of
adenosylcobalamin, and that usually means that there will also be a problem in
production of methylcobalamin.