Guernsey/Jersey/Alderley/Sark all have a country code of 'GB', although they should have GG or JE.
This fixes it:
update geoplz set cc='GG' where cc = 'GB' and admin_name2 in
('Guernsey Channel Islands', 'Channel Islands');
update geoplz set cc='JE' where cc = 'GB' and admin_name2 in
('Jersey Channel Islands');
update geoplz set cc='GG' where cc = 'GB' and plz like 'GY%';
update geoplz set cc='JE' where cc = 'GB' and plz like 'JE%';
update geoplz set cc='IM' where cc = 'GB' and plz like 'IM%';
is the shortest fix.
For search purposes, this might be a good idea. Same with the Aland Islands, which have a FI adm1 code, as well as an own country_code of AX, or Svalbard (cc=SJ) where Longyearbyen is somewhat Norwegian (while Barentsburg is a little Russian too...)
The ultimate solution would be if geoplz contained geonameid, which would allow a GB plz (which would probably be the view of Royal Mail) point towards a GG town (the geopolitical aspect).
I have changed the country code for the Channel Islands and improved the search to find the codes for all three languages codes, i. e. the respective Channel Island codes and the two codes 'UK' and 'GB'.