In “A Castle for Christmas,” the best-selling author Sophie Brown (Brooke Shields) had the gall to throw a favorite character down a staircase in her latest novel. Now her fans are furious. Even the talk-show host Drew Barrymore — played by the talk-show host Drew Barrymore — is critical of Sophie’s actions.
After an on-air meltdown, Sophie heads for Scotland, in part to flee her readers’ ire, and in part to find writerly inspiration. Her father was a spinner of yarns, Sophie’s daughter reminds her on a video call. His vivid stories about a Scottish castle where his parents were groundskeepers were particularly rich.
In Dunbar, at a quaint bed-and-breakfast, Sophie is welcomed by a kind group of locals who gather to knit. She also encounters Cary Elwes, who plays Myles, the duke of nearby Dun Dunbar castle. Thanks to his rambunctious dog, Hamish, he and Sophie meet cute in town. Impulsively, Sophie decides to purchase Myles’s castle and he becomes its cranky tenant with a plan to get the estate back.
Likeable stars with little frisson, Elwes and Shields are also saddled with a formulaic script. It also doesn’t help matters that Elwes, whose last lead in a romantic comedy was “The Princess Bride,” does not look at ease. The supporting cast is more relaxed (particularly Andi Osho as Maisie, and Lee Ross as Thomas, Maisie’s former sweetheart and Myles’s servant). But no one’s happier for their close-up than the pup who portrays the dogged matchmaker. It’s tempting to say, he puts the ham in Hamish, but then isn’t that an Easter dish?