How can I reload a UI operator instead of creating a copy of it when I run a script?
When you add or alter something in your adddons register() function you also need to undo that change in unregister(). For your menu item that means adding bpy.types.INFO_MT_add.remove(add_it)

The other issue you have is running the script in blender's text editor. When you do this the code after if __name__ == "__main__": will be run, if you want to test your addon like this then add an unregister() call before the register() call. You will want to put the unregister in a try block to catch unregistering before the first register.

Blender's addons are sometimes easier to test if you save the file in your addons folder and disable/enable the addon from the preferences.