there are 2 separate issues in your post that are unlikely to be solved by a CLR solution:
there are no details about where the timeout actually occur (on the rdbms while performing the selection, on the client side while retrieving the data, in the report engine while actually building the report) so i suppose that the timeout occur on the rdbms.
building a CLR library will not improve the time required to gather the data.
the solution is indexing (as you already did) and query plan analizing to identify bottlenecks and issues.
should you have provided any sql code it would have been possible to give you some relevant hint.
this looks like an issue related to the amount of data that makes the machine struggle and there is very little you can do.
once again a CLR library on the server will not lower the amount of data handed to che client and imho would only make the situation worse (the client would receive compressed data to uncompress: an additional heavy task for an already overloaded machine).
your best bet are increase the amount of ram, buy a better cpu (higher speed and/or more cores), run the reports scheduled and not interactively.
there are no technical details at all in the post so all the above are more or less wild guesses; should you need some more detailed answer and advice please post another question with technical details about the issues.
https://stackoverflow.com/help/how-to-ask