Some don't work at all, bc they must be GSF-only I guess (installed via Aurora store). Others like Whatsapp or Signal sort of work but sometimes the app seems to not be running (even though I set up the no battery optimization). And I get multiple unread messages at once when manually starting the app.
If you aren't using sandboxed Google Play then you're not going to have push notifications in apps solely implementing those via FCM. That's your decision and not an issue with push notifications on GrapheneOS. You're using the fallback push notification systems in WhatsApp and Signal rather than FCM. Neither app cares much about those fallbacks. If you want reliable push notifications without FCM for Signal then you need the Molly fork of Signal with a UnifiedPush provider. There are hosted UnifiedPush and MollySocket services so you don't need to host it up yourself.