I'm not aware of any tool that can help you to identify the differences.

You will enter into different problems.
For data
1. development and production have been changed since last refresh which results some of the sequence or key used in tables conflict each others so that you have no way to append production to development.

2. if all tables designed with PK, you can simpy import the data to the development database with IGNORE=yes so that it will import only rows with no unique constraint error.

For previliges,
you can get it from the production database by query against the production database
select 'grant '||PRIVILEGE ||' on '||
table_name||' to '||
grantee||';' from dba_tab_privs
where owner=SCHEMA_OWNER

For triggers and stored procedure,
you should not refresh it because the development is always have changes that are not released to production.

if you want to get the whatever trigger and procedure in production, you can get it by
(a) do a schema export without data and edit the file to extract the trigger and stored procedures source.
(b) get a tool to extract a create script from the data dict from production. (eg. tools from ERWin, PowerDesigner or write your own sql to extract the scripts)