Granting per-node-type permissions in hook_node_type_insert()
So, my bet is that the new node type isn't getting added to the cached list of types that node_type_get_types() returns. At the very end of node_type_save(), it calls node_type_cache_reset(), but that's probably running too late for your code.

So try putting a call to node_type_cache_reset() at the top of your function, and hopefully that will do the trick.