What I meant is that Shake in both programs is implemented differently since in Lammps you cannot Shake whole large molecules (due to some parallelization considerations) while in DLPOLY you can.
One thing to consider regarding your original issue. How far from the equilibrium volume is your system at? Sometime I find that being far away from equilibrium and attempting to use rigid (or shake) is a finicky issue. This might be especially the case for a small system of gas particles were volume fluctuations might be large.
Sometimes I am successful in running these systems by equilibrating with NVT integration (use velocity rescaling if necessary). Once you have a stable temperature use a very loosely coupled NPT to slowly change the volume. Berendsen barostat will not work (at least for me) if you are far away from equilibrium volume and using rigid. Finally keep in mind that using rigid will limit how large a timestep you can use. For the TraPPE CO2 system I have modeled before energy conservation was achievable with a timestep of about 1e-3 ps but no 2e-3 ps.
Final disclaimer, I did this work in dlpoly, not LAMMPS but I hope my experiences are helpful to you.