NORM_HAMMING2 vs NORM_HAMMING
From BFMatcher constructor documentation:


  NORM_HAMMING should be used with ORB, BRISK and BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor description)


And ORB constructor documentation:


  WTA_K - [...] Other possible values are 3 and 4. [...] Such output will occupy 2 bits, and therefore it will need a special variant of Hamming distance, denoted as NORM_HAMMING2 (2 bits per bin).


In other words the right choice is the one that matches your ORB configuration (NORM_HAMMING when WTA_K==2, and NORM_HAMMING2 when WTA_K==3 or WTA_K==4), otherwise you'll wind up with incorrect norms and correspondingly poorer/inconsistent matching performance.