Dechirping is a bit different than matched filtering, but perhaps that not important here.
The code you have looks like it should work if the variables are as you describe. Here is a hypothetical example that range compresses an LFM pulse. The reflected signal from an actual target in the scene is a just a delayed version of the waveform, so it will just be a shifted version of what you get when you range compress the transmitted pulse itself:
Tp = 10e-6; % Pulse length (s)
Brf = 200e6; % Bandwidth (Hz)
fs = 1.2 * Brf; % Sampling frequency (Hz)
Ns = ceil( Tp * fs ); % Number of samples per pulse
% Vector of time samples (s)
t = 1/fs * ( -Ns/2 : Ns/2 - 1 ).';
% The LFM waveform.
lfm = exp( 1j * pi * Brf / Tp * t.^2 );
% Matched filter the pulse.
rngcomp = conv2( flipud( conj( lfm ) ), 1, lfm );
% Display the magnitude of the IPR.
plot( 20*log10( abs( rngcomp ) ) );