I'm thinking that this is way too big a question for a forum.
So far as your point-in-time stuff goes, I believe you're headed in the right direction.
I think your biggest problem will be the maintenance of the data. What are you using to guarantee that your point-in-time data is accurate according to the Type II Slowing Changing Dimension that it appears that you're using?
--Jeff Moden
Change is inevitable... Change for the better is not.