Yes, most of the rules need to be on both servers.
However because of the way my guy has called the PHP redirects I am convinced they are chaining somewhere.
You should be internally rewriting to the PHP script so that the only redirect seen out on the web is the one issued by the PHP script.
If you inadvertantly redirect to the PHP script, there will be two redirects. This must be avoided.
In any case, it is easy to test. Request: / /index.php /somepage /somepage.php /folder/somepage /folder/somepage.php (and any other extensions) on each of www and non-www on both the old and new site. You need a selection of the different types of URL on your site.
Look carefully at all of the results.
You should also test a variety of non-valid URLs. It is best that they all return 404 at the requested URL rather than redirect to a different URL and then return a 404, but sometimes that can't be avoided.
On a recent site migration I had a list of more than 800 test URLs to ensure that absolutely everything had been taken into account.