That also led me to ParameterList, but that seems to do the same thing as register_parameter from my original post when I add the parameter to a parameter list in my new module.  Am I using ParameterList wrong, ie I have to call something to move things from the _parameters field to the named_parameters field?
edit: actually calling named_parameters().next() does seem to return my vector, so it must be in the graph somewhere.  and .grad is getting filled in but the optimizer does not change the values.