I have subsequently learnt there is a reason why Microsoft has ParserEnabled set to false in Record Centre sites by default. The issue with the rogue behavior described above is the result of the Taxonomy Update timer job doing its jobs and attempting to sync with the taxonomy hidden list. The problem was setting the parserEnabled to True compounded the problem because there appears to be no consistency with term IDs in the hidden list in different sites. Hence it was throwing up the wrong values in wrong metadata fields. What a mess!