(Disclaimer: This is not tested, it's been a while since I did a D6 site...)
First, I would implement hook_menu_alter and clone the
node/%node/edit item into
arts/%node/edit. (If you want to use custom page callbacks for the forms, that's fine. You can make all changes you need to the menu items.) At least, you must change the
access callback property and set it to the function name of your custom access callback (see below). Now you have three similar menu items with three different URL's. All of these should be visible as tabs on all nodes, so we're not done yet.
Second, I would create a custom access callback to hide the tabs with the incorrect URL's. This is described in HowTo: Add / Remove a menu_local_task for specific node types. In your case, the access callback should check the type of node on the current page and use it to decide if the tab must be shown or not. Don't forget to also call
node_access(), because if the user is not allowed to edit that node, the tab must be hidden too.
Sorry I don't have actual code to share, I hope this helps.