Answering my Q (with a little help from MSFT's friends):
the programmatic assignments on the .aspx page need to be wrapped in the Page_Init() event, like so:
protected void Page_Init()
{
PictureUploaderAndProcessor1.PathVirtual =
"~/ni/apps/xxx/images/submitted/";
}
do that, and everything works like a charm.