I had to do this to access my hidden field's value:
Request.Form["ctl00$ContentPlaceHolder1$PassedProductCategoryID"]
OR
Page.PreviousPage.Master.Controls[3].Controls[3].FindControl("PassedProductCategoryID")
which is more ".NET" but still not very good as FindControl isn't recursive so I still needed to use Controls[3] for the Form and the second Controls[3] for the content place holder. Check Rick Strahl's post on recursive FindControl
http://www.west-wind.com/WebLog/posts/5127.aspx
I've seen other people just do Master.FindControl("controlName") - but for some reason that never works for me?
Brock's method doesn't work in the situation I have either, as I only do a cross page postback the first time to my page, subsequent times need to stay on the same page.
K. Scott Allen has some good stuff on Masterpages at
http://www.odetocode.com/Articles/450.aspx including a bit about cross page postbacks and using the @MasterType directive, I'm going to give it a go