Во первых в алфавите base64 присутствуют символы "+" и "/" которые поломают вам строку url, их надо исключить, а при подтверждении почты вернуть обратно.
Во вторых строка base64 должна быть кратна 4. Если не хватает символов в конец строки добавляются знаки "=". Чтобы не тащить их в url, можно их обрезать, а в последствии добавить.
//$Code = substr(base64_encode($_POST['email']), 0, -1);
$code = rtrim(strtr(base64_encode($_POST['email']), '+/', '-_'), '=');
$codeUrl = substr($code, -5) . substr($code, 0, -5);
$url = "http://forum/account/activate/code/" . $codeUrl;
//$Email = base64_decode(substr($param['code'], 5).substr($param['code'], 0, 5));
$unCodes = substr($param['code'], 5) . substr($param['code'], 0, 5);
$email = base64_decode(str_pad(strtr($unCodes, '-_', '+/'), strlen($unCodes) % 4, '='));