Yes, you can host Discourse on your servers… we have an official install guide
Probably! it appears that keycloak supports OAuth 2, which works with Discourse – Discourse OAuth2 Basic
Yes, you can create groups and use them to control access to specific categories (Understanding groups and category permissions (security settings)). Groups can also communicate among their members using PMs.