I would just use javascript to clear filters, going code behind is a bit overkill.
You can sometimes cast a control, but if it's not a compiled level it can be very difficult to do. You have the right idea to cast as a CMSAbstractWebPart, that should give you access to the SetValue and GetValue, if these are tied in any way to the textbox (if you can set the value to nothing) that may work.
f.SetValue("Value", "");
You'll have to see in the control what value is tied to the filter.
Note you'll also, if you want to continue this path, do a recursive search of controls, as the .Controls only list the child controls, not grandchildren. There is a way i believe to get a webpart by it's WebpartID, i believe it's in the CMS.PortalEngine.PageTemplateInstance.GetWebPart(string webpartID), or near it, and you may need to first get the current PageTemplateInstance, and i'm not sure if it returns the current control or just the info of it.