I am probably completely wrong, but at least it will be short ...
Could it be that
    select sum(tquant)
        from mtr_reg
        where to_proj = $2
        and pnum = $1
        and (status = 'clsd' or status = 'open' or status = 'prip')
    ;
makes it harder for the optimizer due to the ORs, and that
    select sum(tquant)
        from mtr_reg
        where to_proj = $2
        and pnum = $1
        and status in ('clsd','open','prip')
    --- last line changed
    ;
would produce a better cost estimate? 
Miguel Sofer