Hi Sneha,
1) Depending on the version of SSRS you are using, you can use GetReportDefinition method (http://msdn.microsoft.com/en-us/library/reportservice2005.reportingservice2005.getreportdefinition(v=sql.100).aspx) or GetItemDefinition (http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.getitemdefinition.aspx)
2) You can use the RDL Object Model to edit the RDL, although it's not trivial and the classes of the Microsoft.ReportingServices.RdlObjectModel namespace are marked internal (SSRS 2008 R2 and higher). You can find sample code by Teo Lachev at http://prologika.com/CS/blogs/blog/archive/2010/03/08/where-is-rdlom-in-r2.aspx
and by Lionel Ringenbach at http://ucodia.fr/2011/10/advanced-reporting-services-part1-rdl-object-model/ andhttp://ucodia.fr/2011/10/advanced-reporting-services-part2-rdl-serializer/.
For reference information about the classes and methods of the RDL Object Model, start at http://msdn.microsoft.com/en-us/library/ff493708.
3-4) I think it would be easier to deploy your edited report back to the server and then call it with the ReportViewer control. Then you can just leverage available methods in a straightforward manner. The ReportViewer control can handle the rendering directly.
Here's information on deployment via the Web service: http://tomyrhymond.wordpress.com/2011/08/07/sql-server-reporting-services-deploying-rdl-files/
Regards,
Mahesh O.