How to implement a FIR filter with correction of group delay on c#?
Any kind of digital filter will cause the the output signal to be delayed by some amount of samples. 

From what I gather, you are trying to run a signal through a high pass filter (is it an FIR or IIR?) and correct the group delay by "filtering the first time, inverting the response in time...". I personally have never been taught or have read of such an algorithm to correct for group delay. 

One thing that I am confused about is why you want to fix the group delay. You are not ok with the input signal being delayed by a few hundred samples? All you do is have to wait and all will be fine.

The only reason why I would think you'd need to fix the group delay, is to compare the filtered response to the original signal in the time domain. Or do something much more advanced than garden variety filtering. If you are trying to compare time domain responses, you will have to delay the reference signal by the same amount of FIR filter delay your high pass filter has. 

If this answers your question, respond and I'll go into more detail on how to delay your reference signal, and how to find the sample delay of an FIR filter. You can also google "sample delay of fir filter".