The situation should resolve itself once Google sees that you have removed the 301s and all of the link data associated with those URLs is recalculated. How long it takes depends on many things, but there's not much you can do except wait.
Overall, the old URL is removed (at least from the primary index) and the URL that is the target of the 301 redirect is indexed and receives most of the credit from the old URL (ie. PageRank, etc.). But the old URL will continue to be crawled at least as long as their are links somewhere pointing to it. Overall, you want to do whatever you can to have any such old links updated to point to the new URL - whether they're on your site or on external sites.
You code looks OK to me. You can always use one of the many online server header response checkers to see if your server is responding with a proper 301 redirect. Good luck!
I'm not sure removing the 301's gets you anywhere. Mat Cutts did a big post about 301's a year or two ago when he redirected his blog to another site, and then brough it back.
I would 301 the new locations back to the old locations. The whole point of using 301 is to tell search engines that the move is permanent. If Google has already indexed the pages in the new location you don't send them back, they may keep checking the new location for pages they think are there for months.
I have a copy index.php now (index8.php) that is the same but simple writes out any headers it would do and final address, if any; plus whatever happened in htaccess. So I am able to check any url to make sure the action is correct.
Originally I got into a mess because of a broken SEF engine and wrong base-path. Then on top of that changed a few times how the url's were formed (adding title to it).
The new system is mostly to correct all these errors - some 40+ checks that need include DB queries at times. But it seems to be ok now at last (till next time WMT updates ;) ). (Pretty much all the wierd URLS and old addresses exist only in Google's DB and not on my site or other sites.)
I had mistakenly added the 301 header to the SEF redirect as well as the corrections for past errors.
Hopefully in time I can take down most of this (perhaps a year or so).