Hi, a few things that may unblock you here.
1) Custom volume name. In gateway_definition you can set gateway_storage_catalog, gateway_storage_schema and gateway_storage_name. If you leave gateway_storage_name out, the gateway auto-generates a volume called __databricks_ingestion_gateway_staging_data-<pipeline_id>, which is why you cannot predict it in YAML. Setting the name explicitly at least makes the volume path deterministic for grants and monitoring. As far as I can see in the docs, this field points at a volume the gateway creates itself, so I would not plan on pointing it at a pre-created volume. Worth testing on a dev target first, because the docs do not say it either way.
2) Why your GRANT does nothing. The volume is created and owned by the pipeline's owner (or run-as principal). You can only grant on it if you are the owner, hold MANAGE on it, or are a metastore admin. Check who the owner is with DESCRIBE VOLUME ... or in Catalog Explorer, and run the GRANT as that principal or ask the owner to grant you MANAGE.
3) Grant at the schema, not the volume. Privileges in Unity Catalog inherit downward. If you declare the staging schema in the same bundle (resources.schemas with a grants block giving your group READ VOLUME, and WRITE VOLUME only if really needed), then any volume the gateway creates in that schema is covered automatically, including after a redeploy that changes the pipeline id and therefore the auto-generated volume name. That avoids having to chase the volume at all.
4) Keep the staging schema separate from the destination schema. Staging holds raw change data and the gateway checkpoints. Most people only want the pipeline principal and a small admin group to see it, so a dedicated staging schema keeps that grant surface small.
5) The pipeline resource has its own permissions block (CAN_VIEW, CAN_RUN, etc.). That controls access to the pipeline, not to the volume, so it will not fix the volume access by itself.
If it still fails after the schema-level grant, post the exact error message and the output of DESCRIBE VOLUME, since that will show whether it is an ownership problem or a missing USE SCHEMA / USE CATALOG on the parent.