Group Policy:
The user's policy isn't solely dependant on the user object - it can be affected by wmi filters, foreign domain groups or Authentication Mechanism Assurance, meaning your group membership is changed according to the way you provided your credentials. In short - the only 100% accurate way is actually logging in and checking GP results.
You can try GP result "planning", meaning all of the extensions are asked "what would you have done if this user was logged in", but they have to support it (not to mention installed on your machine) and it's not easily as scriptable as GP result "logging" - there's no easy PowerShell command for it AFAIK, and it has to be done using WMI.
Other stuff:
Note that some of the things you specified aren't GP extensions at all. For instance, password policy is set at the DC level, even if it's fine grained.
What you should do:
If I were you, I'd make a list of things that matter to me (you started doing it - bitlocker encryption, password policy, group policy), and treat each one differently (since they have to be treated differently). You'll end up with set of data about each policy, which you can consider merging (my guess is that you won't, since it doesn't bring any new insight).
The important part to script is the data collection (and not the summarization), since this is the part that requires tedious work and not creative thinking.