I have a 1998 BMW 328i 4D. When the outside temperature nears freezing, the passenger front door will open properly but won’t close without considerable difficulty. Instead of latching, it “bounces” back open. I can usually finagle it closed within a few minutes.
Clean and lubricate the latching mechanism. Lubricate it with original materials - - i.e. graphite if that’s what BMW used. A call to BMW’s service department would tell you what lube to use.
I remember an issue with the door to body sealing rubber being out of place causing this.
I went and looked for a TSB about issues closing the door as I was sure this was how we found out the the body to door seal was either installed incorrectly or made too incorrect dimensions, but I did not find any, make sure this seal is fully in place.