I am relatively new to Mosel, and completely in the dark about complex modeling in it! I can't find decent answers anywhere.
You could possibly formulate your matching problem as an assignment problem (seeking for a maximum weight matching in a bipartite graph) and solve it as an optimization problem.(Notice however that maximum weighted matchings may not be stable matchings.)* Mosel model example implementing an assignment problem: machine assignment
http://examples.xpress.fico.com/example.pl?id=mosel_book_9_1* Mosel model example implementing matching in a non-bipartite graph: flight crews
You could also implement specialised algorithms for this problem directly in the Mosel language, or invoke the matching algorithms from the R package matchingMarkets from a Mosel model that helds the problem data.
Retrieving data ...