Can a table column be written to treat two different values as the same value?
This isn't a perfect solution but may work for you.  

Rename your source table.

EXEC sp_rename 'countries','countries_source'


Then put a view on top of it

CREATE VIEW countries AS
SELECT fields, 
    CASE WHEN CountryCode = 'GB' THEN 'UK' ELSE CountryCode END AS CountryCode
FROM countries_source


Your existing SELECT queries won't have any problems.  I think you will have to modify your UPDATE queries and might have to update your INSERT and DELETE queries as well.  But some quick tests should let you know if that's the case.