Not sure if it's helpful to anyone, but I came up with this amateur hack to add my watermark. It's just a text overlay but it uses gstate to make the text partially transparent and rotates it to appear diagonally (stamp=ll2ur) across the page. It worked for me but YMMV.
/* Create an extended graphics state with transparency set to 50%, using
* create_gstate() with the "opacityfill" option set to 0.5.
*/
$gstate = $p->create_gstate("opacityfill=0.1");
/* Apply the extended graphics state */
$p->set_gstate($gstate);
/* Use an optlist with stamp=ll2ur to place the watermark "stamp" from lower left to upper right. */
$optlist = "stamp=ll2ur font=" . $font . " fontsize=8 boxsize={" . $box_x . " " . $box_y . "} textrendering=0";
$p->fit_textline('Copyright ACA 2011',$llx, $lly+170, $optlist);
/* Restore the current graphics state */
$p->restore();
Nick