Your generated markup violates one of the rules of HTML - ID must be unique...
You do not tell us what List[i] is, but if it is the ID, than FindControl will return null in case of duplicates...
This one may help you understand some aspects of nested structures and FindControl:
Understanding ASP.NET Templates[
^]