In the past, this project I am working on required a manual call to 'SetPersonalizationDirty' on WebPartManager, so the developers extended WebPartManager to make that call. (Hint: before doing the same thing, consider making a static helper class that uses reflection to call the protected method for you, and you will avoid the problem we now face!) Well, to convert this web site project to a web application, that derived class needs to move into the new project, which means the type would then be different, which causes a loss of personalization for whoever logs in. We would like to avoid the inconvenience of setting everything up again for our 500~ employees, but so far it looks like there is no easy solution. I had a bit of self-dialogue on my Stack Overflow question here:
If anyone can help me solve this problem, it would be greatly appreciated. I only posted the Stack Overflow link for reference to my findings so far, please do not feel obligated to comment or do anything on that web site.