It seems like you're understanding of the underlying signal processing math isn't quite that solid (which isn't a bad thing!). Just because your signal is non-linear does not mean that you are unable to use a filter which may be linear. As a similar example, consider audio signals, those are also "non-stationary" and "non-linear" in the way you are using those words, though simple digital and analog filters are used VERY often to reduce noise on signals like these.
It looks like this is just a simple de-noising case where you have some low frequency components you wish to keep, and the high frequency components are almost entirely due to noise. In this, a really simple low-pass filter will likely do the trick. You could use an FIR filter or an IIR filter, that's up to you. Personally, I would use an FIR filter here since the group delay is well behaved. When you filter your signal, make sure you correctly compensate for the group delay (an easy way of doing this would be to use MATLAB's built-in "filtfilt" command).
You could certainly use other methods (ones you've mentioned, as well as a whole mess of others), but I feel they might just make this problem a bit more difficult than it needs to be. Often times, a lot of common problems like this can be solved with just a relatively simple filter. If the low-pass filter doesn't work out for you, you might want to look into Singular Spectrum Analysis (SSA), and use that to de-noise the data a bit (though I think you'll find its performance will be pretty similar to the low-pass filter). If you're interested in that method, check out this MATLAB tutorial on the subject. I've used SSA a bunch for work/in research, and found it can be very useful in problems like these where you know the signal you care about is band-limited and has a decent SNR value, and you can isolate it from other frequencies, though you may not know exactly where the signal is with respect to frequency, making a priori filter design difficult. Might be worth a look if you're wave data can shift around a lot.