Desconozco ADO, pero se supone que .value va a esperar el tipo que corresponda al campo, así que seguramente el problema sigue siendo que haces una conversión de date a string que no hace falta
Código:
Parameters.ParamByName('fecha_oficio').Value:= Fregistro.dtp_fecha_oficio.Date;