you're going to want to check that RemoveUserControl isn't null as you said before. Also, when you add the controls back to the page in page load make sure you are adding the event to the controls again. And if none of that helps then when you step through the code using the debugger where is the null exception occurring?
can you repost all the .cs code for the ascx and aspx? Just looking at it piece meal it looks like it should be working. You will definitely want to do a null check where you're calling the event to handle any cases where it's null, but then you need to figure out why it's not getting set. You may need to try moving the code to reload the controls from your Page_Load event to the Page_Init event.