Custom user roles doesn’t apply changes

in WP documentation:

NB: This setting is saved to the database (in table wp_options, field wp_user_roles), so it might be better to run this on theme/plugin activation

It means that when you first run your code it is saved to db, and if you try to do it one more time it will not be changed becouse it is already in DB.. you should remove role before making changes..