1) You're misunderstanding how the effect system works in Paint.NET. We will call your Render method many times. This is so we can do things like: report progress to the user, let the user cancel the rendering, split rendering among multiple cores/processors by using multiple threads, and clip rendering to a selected region.
EffectDirective is indeed a v2.6 thing, it replaces the old method of using attributes. Also, Paint.NET v2.6 is not compatible with plugins written for older versions of Paint.NET.
2) The changes required are not major. There is simply a different overload of Render() that takes an array of rectangles and which part of the array to be concerned with. You should be able to just try compiling, look at the errors, and make fixes from there.