DFT and then IDFT does not provide the same signal
If you want your IFFT result to match the input to the FFT, don't throw away either the "imaginary" (or sine correlation) components, or the "upper half" of the spectrum, before the IFFT.  Also make sure the input to the IFFT is exactly conjugate symmetric, so that all the imaginary components in the IFFT results get cancelled out (except for rounding errors or quantization noise).  The length of the IFFT has to be the same as that of the FFT.

Your 99 and 95 Hz components are also the -1 and -5 Hz components needed (in complex conjugate symmetry) to cancel out any rotation of the time domain data into the imaginary plane.  Since the FFT is a complex to complex transform, you can't just ignore these components even when dealing with strictly real data.

The 0 Hz or DC component of an FFT result appears double height because it includes it's own mirrored value.

Unless your sinewave's are exactly periodic within the FFT length, you will need to interpolate the true amplitudes, since their peaks will be between the FFT result bin centers.

The IDFT and IFFT can be used as signal generators, although great care must be taken with phase for any frequencies that are not exactly periodic in the FFTs length.  See Phase Vocoder analysis/synthesis for details.