Eugh, I've given up on this! I'm simply just doing it with a map {} now for each of the variables, and then doing:
map {
$add->{$_} = utf8($add->{$_})->latin1;
} keys %$add;
...which works fine. Just wish I could work out why it doesn't seem to be reading/adding it properly without! Unfortunatly I don't have hours and hours I can spend on this trying to work it out :(
Thanks as always for your help though - much appreciated
Cheers
Andy