It looks like there was a calculation problem with the reservedQuantityLeftOver variable. This variable did not consider the Quantity Not Available, and was causing problems when creating reservations and updating inventory items.
Also I found an issue where zero quantity reservations would be created. This would occur when quantityLeftToProcess is zero but the code would continue to iterate through reservations.
I found this function's logic and its comments to be somewhat confusing, so I may have changed more than what was needed to simply fix the issue. I only made changes to the portion of code that cycles through the reservations. I don't have time to officially contribute a patch, but I have attached my modified and tested StockMoveServices.xml and a SVN patch from my personal branched repository (that started with OFBiz 4.0). Hopefully this will help whoever tackles this issue.