Suggestions on a matching/scheduling algorithm.
While the entire problem seems under-defined, I believe it's fairly clear that you're dealing with a Multi-Objective Optimization problem, with scheduling simply being the backdrop for this problem.  Most new effort in this field seems to be concentrated on Evolution Algorithms as solutions to these problems.

I personally do quite a bit of work with Particle Swarms in this area mostly because they provide very simple method of visualization in a complicated space.  Other algorithms would include Non-dominated Sorting Genetic Algorithm-II (NSGA-II), or Multiple-objective Bayesian Optimization Algorithm (mBOA).

I would agree with Tsuyoshi in that you may want to spend more time on the problem definition as well.