Simulating noise in OFDM
In theory, all you'd need to do is add Gaussian noise of the appropriate variance. Without seeing your code and without knowing what "funky" means, I would check for:


when you do the convolution, scale the result by $\Delta t$, the time differential
make sure the FFT scaling that Matlab performs is not throwing you off


One thing you can do, which is simple but not very elegant, is to add the noise to each symbol after the FFT in the receiver, but before running any decision rule on them. You can simply add one sample of complex noise of variance $N_0$ to each symbol; since you control their average energy, you can get any SNR you want.