The problem with your procedure is that the NLS_DATE_FORMAT in the session where this is run, is different than 'MMDDYY'. As a result, there is a type mismatch between the date you pass out of your procedure, and the type of the date variable you wish to put the return value into.

Either change NLS_DATE_FORMAT:

alter session set nls_date_format = 'MMDDYY';

OR

pass the current format

OR

pass a date-like string, and convert after you get it out.