Once Taxonomy Translation (i18ntaxonomy) module from Internationalization is enabled, term permissions has no effect. The hook_form_alter in i18ntaxonomy regenerates all the terms in the form and overwrite the removal of terms by term permission.

It seems that setting the module weight greater than i18ntaxonomy (weight=5) can bring it back to work, as such the hook execution order for the two modules are reversed. See if this can be a solution:

Add the following lines in function term_permissions_install() in file term_permissions.install before enabling this module:

  // Set module weight for it to run after i18ntaxonomy module.
  db_query("UPDATE {system} SET weight = 6 WHERE name = 'term_permissions' AND type = 'module'");