Do you know this plugin?: http://www.logarithmic.net/pfh/resynthesizer
this is very similar to what you what to do. It tries to calculate or add selected areas from surrounding area. But something like this is too complex and unreliable (personal experience), simply said, the plugin doesn't have any intelligence and don't understand what it sees.
But if you want something simplier.....

You would use blurring of original image (except for areas that user selected) and replace pixels (marked by user) from blurred layer.

The blurring might be selective, or can be directional....

As for implementation – gimp gives you a lot of freedom.You can almost forget that you are writing a plugin for gimp. You can have own data structures – 2D or 3D arrays, gimp will allow you to populate them with data from a picture. And at the end of processing, you will have to populate drawable (~layer) with standard RGB values (int from 0 to 255). You can write your own algorithms from scratch....

Yes, I was able to browse a little on this plugin (http://www.logarithmic.net/pfh/resynthesizer). I was planning to study it's algorithm and source code. I know C language. Is GIMP Plugins written in C? Sorry for my ignorance.

Please suggest/ advise of what steps should I be taking in order to be successful in developing my desired plugin. Hope you could walkthrough with me.

Yes, I looked on some of your examples, downloaded few zips, and looked at "source".
I must say, C and python are not interchangeable here. The python looked to me as a (very advanced) scripting language using features provided by gimp, while C will provide you with raw data and you are on your own.

For example here in this thread we are now, if the author decides to create own blurring algorithm, that would omit some pixels on the presumption that such pixel is not part of orignal image but it is damaged part of a photo - than I believe you need rather C than python.

So what language is better to use depends only on the type of work one needs to do...