there's a safety interlock that is supposed to make sure you have your foot on the brake before you change out of Park.
if you pop the selector lever gaiter off the centre console base, and just pull it up a bit... , you should be able to see yellow plastic switch on one side , that's connected by a small rod to a servo. (not sure if you're left or right hand drive and whether there's any difference between them.... so not saying for sure which side it's on... on my right hand drive one, it's on the left, on the side away from me. )
if the servo isn't pushing the switch hard enough, it won't let you disengage from park... it's easy to just push it forward yourself when it sticks.
as to a proper fix.... i'm not sure, I want to try changing my gearbox fluid and filter first, and see if it makes any difference... after that i'll probably get another servo and see if it's simply the servo gone weak... but i think in my case it's the interlock switch sticking....
it might also be related to adjustment or wear in the brake light switch, as it's this that disengages the interlock and operates the servo...