copyParamList does not respect from->paramMask, in what looks to me like
an obvious oversight:
   retval->paramMask = NULL;
[...]       /* Ignore parameters we don't need, to save cycles and space. */       if (retval->paramMask != NULL &&
     !bms_is_member(i, retval->paramMask))
 
retval->paramMask is never set to anything not NULL in this function,
so surely that should either be initializing it to from->paramMask, or
checking from->paramMask in the conditional?
-- 
Andrew (irc:RhodiumToad)