Apologies for the delay.  I got it sorted out.  The rules seem to be:

You cannot you Sequential unless you plan to purposefully shard your model.  It cannot be used in a model with a generic data_parallel call (where you replace your forward call with data_parallel).  If used with that call you will get errors indicating that the weights are not on the correct GPU, like the one above.
You may use nested modules, however they also need to be wrapped in Cloneable, just like the main module.