BTW, You could try using this code in place of your current PM code. I replaced it in my credits.php and it seems to notify me now.
PHP Code:
$dsender = $db->query_first("SELECT userid, username FROM " . TABLE_PREFIX . "user WHERE userid = " . $vbulletin->options['credits_pmid']);
$pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);
$pmdm->set('fromuserid', $dsender['userid']);
$pmdm->set('fromusername', $dsender['username']);
$pmdm->set_info('receipt', false);
$pmdm->set_info('savecopy', false);
$pmdm->overridequota = true; // Force pm send even if recipient's mailbox is full
$pmdm->set('title', $vbphrase['credits_pm_post_subject']);
$pmdm->set('message', construct_phrase($vbphrase['credits_pm_post_body'], $userinfo['username'], vb_number_format(( $vbulletin->GPC['dir'] == 'pos' ? 1 : -1 ) * $vbulletin->GPC['amount'], $vbulletin->options['credits_decimals']), $vbphrase['credits'], ( $vbulletin->GPC['anonymous'] ? $vbphrase['anonymous'] : $vbulletin->userinfo['username'] ), fetch_censored_text($vbulletin->GPC['reason']), $vbphrase['credits_log']));
$pmdm->set('dateline', TIMENOW);
$pmdm->set('allowsmilie', true);
$pmdm->set_recipients($userinfo['username'], $permissions);
$pmdm->save();