I have migrated from 4.0.1 to 4.0.5 and then 4.0.5 to 5.1.0. The migration from 4.0.5 to 5.1.0 was much smoother. Only change i had to make was in the deployment descriptors and unfortunately some hardware changes as well. Depending on the machine and available memory the server (AIX) took almost 8 to 10 minutes, sometimes even 30 minutes to 50 minutes to start. The delay was mostly because of the native libraries available from IBM were not that fast enough. However the server came up within 1 minute on a windows PC. I mostly have web services deployed.
The migration from 4.0.1 to 4.0.5 was hard because i had to swap the axis web services stack with jbossws stack. Had to make some coding changes for that to happen. For migration, there does not seem to be a tool or something. It is mostly what is needed for your kind of application in the newer version. Move from 3.x to 5.x may be slightly bumpy but I would recommend that.