Dreamer’s Pool by Juliet Marillier
Synopsis from GoodReads:
In exchange for help escaping her long and wrongful imprisonment, embittered magical healer Blackthorn has vowed to set aside her bid for vengeance against the man who destroyed all that she once held dear. Followed by a former prison mate, a silent hulk of a man named Grim, she travels north to Dalriada. There she’ll live on the fringe of a mysterious forest, duty bound for seven years to assist anyone who asks for her help.
Oran, crown prince of Dalriada, has waited anxiously for the arrival of his future bride, Lady Flidais. He knows her only from a portrait and sweetly poetic correspondence that have convinced him Flidais is his destined true love. But Oran discovers letters can lie. For although his intended exactly resembles her portrait, her brutality upon arrival proves she is nothing like the sensitive woman of the letters.
With the strategic marriage imminent, Oran sees no way out of his dilemma. Word has spread that Blackthorn possesses a remarkable gift for solving knotty problems, so the prince asks her for help. To save Oran from his treacherous nuptials, Blackthorn and Grim will need all their resources: courage, ingenuity, leaps of deduction, and more than a little magic.