I have been playing with more with Chisel lately. An area I find lacking in the documentation is how to register a bundle (i.e. struct). Most examples I have seen use simple registers with type UInt.
It took some trial and error, but here is an example that elaborates and synthesizes properly.