Drupal Association members fund grants that make connections all over the world.
This seems to be the culprit.
$element['value'] = check_plain(htmlspecialchars_decode($element['value'], ENT_QUOTES));
At least the following are missed by htmlspecialchars_decode: ' – “ and ”
Since htmlspecialchars_decode seems to miss a lot of encoded characters and Drupal's check_plain function will double encode without remorse we are left with a problem.