but it compiles ok in SQL*Plus which would seem to indicate there isn't an error
Possibly it is a SQL Developer issue -- here is a very old discussion with the procedure also compiling in SQL*Plus but not SQL Developer:
On the other hand, since you haven't mentioned the SQL Developer version, or the database version, it could be due to an incompatibility introduced by newer releases of SQL Developer using a newer JDBC driver that does not play well with older database releases. For example, using SQL Developer 4.1 (which comes packaged with the 220.127.116.11 driver), we have seen issues arise when connecting to DB versions prior to 10.2.0.5. Configuring to use a slightly older JDBC driver, like in the 18.104.22.168 Oracle instant client, via the Database > Advanced preferences might help.
Do you have SQL Developer configured to use the OCI/Thick JDBC driver? For all I know, that also might help.