I had the same problem with my 2.0 HDi 2005 Berlingo. It would lock perfectly but not unlock. After pressing the remote unlock button the lights flashed but no movement in the door locks.
The problem I suspect, is in the BSI. It comprises 2 boards, connected to each other by 2 sets of pins. The pins can suffer from corrosion and that causes the problem. One board contains the brains of the BSI and is unique to your vehicle. It outputs low level signals to various parts of the car and these signals are transferred to the other board where the signal level is amplified to a level sufficient to drive door locks etc. This servo or amplifier board is not unique and you can safely substitute a good one from a scrapper.(Make sure its the same make - Siemens or Bosch)
This thread describes my own route to a complete and lasting cure
At first I thought relays were the problem but I came to believe it was the connections between the 2 boards. You have to shut down the BSI first, in the approved manner, then disconnect all the plugs, remove the unit and take off the plastic cover. This reveals the 2 boards. You then have to separate them. You will see the 2 sets of long pins which connect them together. This is where the problem lies. Remove any traces of corrosion, very carefully, and reassemble using a conductive liquid like Electrolube, on the pins - keep it off the board itself.
Before you start this job, make sure you get the flashing lights when you press the unlock button. If you do get flashing lights, it means that the BSI is receiving the unlock signal but is not producing any output to the locks. Could be the relays, but I bet it's the pins. Good luck.