I should also mention that I am using an XA datasource.
For my first post, I was using the XA javax jdbc driver. After coming to the conclusion that my problem had something to do with a transaction aware JDBC driver not committing a transaction, I decided to try the non XA SQL driver. I created a new service using the example mssql-service.xml file and redeployed using the new datasource's name and this time it worked. The table is there and the template client runs fine.
Okay... so I've narrowed the problem down, but I still want to use the XA driver. Is this a bug, a feature, or what?