Your reasoning is flawed--push notifications are meant to be transient, they can be tied to an event (such as an email being received) but they are not the event itself. In the email example, all the push is supposed to do is to tell the email app that there is a new email and maybe contain some content that will give a hint to the email content, but the actual content of the email is not the job of the notification to deliver--that needs to be fetched separately. APNS is a system for sending events to remote clients, it is not the content system itself.
The way systems like Facebook or whatsapp deal with this is that they have their own message system and they use APNS to inform the applications that there is a new message in the inbox, then the app will fetch the content for the user by pulling it from the server.
If you want to build a system like this then you can still use APNS but APNS should inform your client that there is new content available to fetch and you will need a server that manages the cloud inbox.