An MP has a duty of allegiance to the monarch. Nothing else.
At best they have a duty to the will of their constituents, certainly not the people across the whole country. But there are 173 MPs who were elected with less than 50% of the vote in their constituency, so at best I think they have a duty to those who elected them. And that duty is based on the manifesto of the party they represent. Although no MP is bound to agree with every element of their party's manifesto.
The Conservative party MPs were elected on a manifesto that said "only ... Theresa May's strong and stable leadership can negotiate the best possible deal for our country." So it's down to individual MPs who were elected on that claim to support Theresa May in delivering what they believe is the best deal for the people who voted for them, and with an eye on future elections, hopefully the rest of their constituency.
There was a promise by a government in 2016 to implement the result of the referendum, but that government is gone. And subsequent governments are never bound by the promises of previous governments. Lots of governments don't deliver on their promises.
I think the mistake made was implementing article 50 under pressure from a small block of hard-line Tories, rather than have a proper think about what was needed post EU.