There is a big clue in the fact that your PINS, rather than the GETS on v$library cache is the high figure. You are 140,000 gets means not very much new activity in the library cache in 40 minutes - the problem is not hard parsing. The PINS tell you you've got a lot of existing objects being used.
What do your stats (v$sysstat) for parse-related values and "session cursor cache" related values look like.
In 9.2.0.4 the pl/sql cursor cache was dictated by open_cursors, in the upgrade to 9.2.0.5 it changed to follow session_cached_cursors. I don't recall if there was a similar change across versions of 10g, or whether 10g has always followed session_cached_cursors - but it may be relevant.
Regards
Jonathan Lewis http://www.oracle.com/technology/community/oracle_ace/ace1.html#lewis
The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/faq/ind_faq.html
Cost Based Oracle: Fundamentals http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
-- //www.freelists.org/webpage/oracle-l