En un List, el método remove(Object) sólo funciona si el objeto es el mismo, no si el contenido del objeto es el mismo.
Si tú haces
Dp registro = new Dp()
y lo rellenas con los mismos datos que un elemento del List, no son el mismo objeto.
Para poder borrar, o modificas los métodos equals y hashcode (hablo de memoria) de Dp para que consideren iguales los objetos que tienen el mismo contenido (o el mismo id), o recorres el list hasta que encuentres un objeto con el mismo id y se lo pasas al método remove.
http://glnconsultora.com/blog/?p=73