It depends on how you normalised it.
If you used the tag based version of ReplayGain then that just adds some bytes of information to the file that tells the player to raise the volume for that file. There is no loss of data, only a minor addition.
If you used the file modifying method of Replaygain (or mp3gain) then that potentially has not lost data because it modifies the amplification values in the file without actually decoding and re-encoding the file. Most implementations of this that I have seen insert some data so that the "original" can be restored and is essentially lossless.
If, on the other hand, you actually decode the data using ffmpeg and then re-encode it using some filter that raises the volume then you are going to suffer generation loss. By losing your original file you have lost one generation of data.
Lossy algorithms, by their very nature, will lose data. It may not be much, but every time you decode and re-encode data using mp3, aac, or any lossy codec file you will lose some amount of data regardless of the bitrate of the file.
It may not be perceptible at first but something has been lost. It might be some inaudible high-tones, or it could be a slight blurring of two imperceptible peaks of audio, but after several rounds of decoding and re-encoding that loss will become noticeable.
To avoid generation loss you should always re-encode from your master copy and avoid successively decoding and re-encoding your already modified outputs. You should not be encoding an output with a particular boost, then decoding and re-encoding that output into a new file with different values. You should work out what value you need to adjust from your original files so that you limit your files to fewer generational losses.
The best thing you can do now is back up what is now your "master" copy.