It looks, like your issues is neither with BASS nor within Bass.Net, but with the extensive use of the BitmapImage class and the .OnLoad option you are using.
I am not familiar with the inners of the BitmapImage class, but why are you using it - as in your example you create a load of new instances with every scroll, which might be very 'expensive'.
Why don't you use a single Bitmap instance, which you constantly reuse with each scroll.
Something like:
private Bitmap _waveImage = null;
...
// init, e.g.
_waveImage = new Bitmap(pictureEditWaveForm.Width, pictureEditWaveForm.Height);
...
// and (re)use it
using (Graphics g = Graphics.FromImage(_waveImage))
{
if (_waveForm.CreateBitmap(g, pictureEditWaveForm.ClientRectangle, -1, -1, true))
{
try
{
// use it, e.g.
pictureEditWaveForm.BackgroundImage = _waveImage;
pictureEditWaveForm.Invalidate();
}
catch { }
}
}