Sorry I didn't get back in a couple days. Thanks for the kind words!
In the middle, when you strip out the php and html extensions and send a 301 redirect, the htaccess file will be ran through again on the new URL. So like /example.html will redirect to "example" and once again be processed by htaccess. So in the MODX section, I'm pretty sure testing the URI "bookingsystem.php" won't work since you would have already striped out the php extension by this point. This may or may not be related to your current issue, but something to keep in mind when testing, no "php" extension should make it to the MODX section of the file.
NOTE: in MODX, you can simply set NO extension, and rather than use .html OR .php, it will automatically have nothing there and you won't need htaccess to strip it out. If you remove the file extension and someone types "thing.html" they will get the 404 page. It is usually faster to NOT have htaccess do stuff. So if you really don't want the html or php suffix, just take it out of MODX!
I'm not sure I understand the issue in your last paragraph though. You said that the suffixes are removed and it returns the "correct pages", but then you're saying you can't redirect the pages to the short URLs. I don't follow.
Can you give some examples of URLs that are not behaving, what you want to happen, and what is happening instead?
One note. If you rewrite a URL, the part in the address bar
stays the same, but content comes from the URL in the rewrite rule. Only if you use the redirect (like "[R=301]") will the page
refresh with the different URL shown in the address bar.
If you rewrite the short URL to show content from the long URL, but rewrite the long URL to redirect to the short URL, be careful of weird looping behavior.
It sounds like you want "/register" to show content from "bookingsystem.php-long url". But you want "bookingsystem.php-long url" to do a complete redirect to "/register". Is this correct? You would need two rules to do this, one rewrite rule for showing content, and one for completely redirecting the page.
Bottom line is, you can keep fiddling with this in htaccess, but just like MODX does, your bookingsystem should probably contain its own content handling so that you don't have to define all these "routes" in htaccess, but handle them in your php handler instead.
These days, the fear of duplicate content is not so great. Google just guesses who the "real" content is for search results, but that is why you can specify the "canonical" URL in your pages. Please read:
http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html