Tangent's and bitangent's as well as normal's .w should be 0, as its direction vector. Indeed mirroring mesh will lead to this problem, beacuse you have different directions there, but same normal map. You should detect vertex/pixel that is flipped and inverse one component of the normal. Simplest solution will be keeping UV coordinates of the mirrored version greater than, so 1 + UV, then you can detect it by taking integer part and use fractional part as UV.