I am curious what happens if you extend Chef::Resource::DataBagItem?  I bet it would work, and both increase the flexibility of your stuff and decrease the work you have to do.  The provider would still be your own, but you could easily do Chef::Provider::ChefDataBagItem.new(new_resource) if you wanted to use the code from the data bag item provider ...