>>1Do you actually believe Ethnicity X is homogeneous "100% pure X"?
Ethnicity is not a closed group, but a jumble of various genetic factors. Haplogroups and Gene "clusters" detection is just probabilities that X belongs to Y.
When you get 45% British -> British themselves are not a concrete ethnicity(they are a feature-set), they just point out that you having Gene clusters/Haplogroups more common(closer genetic distance) with "Average British Person"(they check against a reference gene set for people labeled "British"(often filtered by program to isolate feature-sets so it matches something like "the feature set of majority" that may exclude smaller ethnic sub-groups )).
The only certainty it has, determining the continent of origin.
Inside the continent, its much fuzzier and less precise.
Realistically, if company A "reference gene set" for British is different from company B, you'll get different percents(after all it just algorithms checking genetic distances to reference sets of all DNA in the database).