use utf8;
use JSON::XS;
use open OUT => ':utf8';
my $decoder = JSON::XS->new->allow_nonref(1);
my $json_string = '"Conseil de discipline de l\\u0027Ordre des comptables professionnels agréés du Québec"';
printf "in: %s\nout: %s\n", $json_string, $decoder->decode($json_string);
works for me. (use utf8 needed for literal utf8 in the perl source, allow_nonref needed to decode a just a string, not an object or array)
If indeed you do have some doubly-encoded strings, you could do:
$string =~ s/\\u([[:xdigit:]]{4})/chr hex $1/g;