trel1023, it seems to me, that it's too prodigally to generate $mail_subject & $mail_message in loop.

find:

    foreach ($addresses as $recipientname => $recipientemail)
    {
    
        $mail_to        = $recipientname." <".$recipientemail.">";
        $mail_subject   = pun_htmlspecialchars($_POST['message_subject']);
        $mail_message   = pun_htmlspecialchars($_POST['message_body']);

        pun_mail($mail_to, $mail_subject, $mail_message);

    }

replace with:

    $mail_subject   = pun_htmlspecialchars($_POST['message_subject']);
    $mail_message   = pun_htmlspecialchars($_POST['message_body']);

    foreach ($addresses as $recipientname => $recipientemail)
    {
    
        $mail_to        = $recipientname." <".$recipientemail.">";

        pun_mail($mail_to, $mail_subject, $mail_message);
    }

Finally, we can increase maximum execution time
find:

    require_once PUN_ROOT.'include/email.php';

replace with:

    require_once PUN_ROOT.'include/email.php';
    @set_time_limit(0);

Connorhd, you have a bugs in Database management - v1.3
To fix them:

#
#---------[ 1. OPEN ]---------------------------------------------------
# 

AP_DB_management.php

#
#---------[ 2. FIND ]---------------------------------------------------
#

$return = chr($Val % 256);

#
#---------[ 3. REPLACE WITH ]-------------------------------------------------
#

$return .= chr($Val % 256);

#
#---------[ 4. FIND ]---------------------------------------------------
#

    if($do_gzip_compress)
    {
        @ob_start();

#
#---------[ 5. REPLACE WITH ]-------------------------------------------------
#

    $_SERVER['HTTP_ACCEPT_ENCODING'] = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '';
    if (!defined('PUN_DISABLE_BUFFERING') && $pun_config['o_gzip'] && extension_loaded('zlib') && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false || strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate') !== false))
    {
        // if gzip is on in config, disable plugin gzip
        $do_gzip_compress = FALSE;
        header("Content-Type: application/x-gzip; name=\"punbb_db_backup." . gmdate("Y-m-d") . ".sql.gz\"");
        header("Content-disposition: attachment; filename=punbb_db_backup." . gmdate("Y-m-d") . ".sql.gz");
    }
    elseif($do_gzip_compress)
    {
        @ob_start();