Just so you understand a little about that arg() bit... in hook_menu() functions, items in the !$may_cache block are evaluated every page load to generate possible menu items. arg() parses the URL to find values that might match the other if's in that block... if it's returning no results, then that menu item isn't being added.
Now, I doubt that's the problem for this specifically, but don't worry if some of those fail on various pageloads. It's supposed to happen and is the way for us to only make available certain functions on the pageload.
Do you have a test site you can point us to so we can see what's going on? That always helps.