I have not worked with Forms for a long time. Are use sure they actually support the NVARCHAR2 data type? My memory tells me that they do not.
I recommend migrating the database to AL32UTF8. You can support NVARCHAR2 in Forms using workarounds with stored procedures to move data as you described (you should be able to do this while reading as well.) but NVARCHAR2 data type is discouraged as it is not necessarily supported by all database features. For example, you cannot built an Oracle Text index on an NVARCHAR2 column. I am also not surprised that Reports cannot support NVARCHAR2.
Out of curiosity, I have installed Forms 220.127.116.11 and created a form on the standard demo table OE.PRODUCT_DESCRIPTIONS, which has NVARCHAR2 columns. The form seems to work fine with some Cyrillic characters that I tested. My database character set is EE8MSWIN1250, so it does not support Cyrillic characters. Therefore, the NVARCHAR2 Unicode support seems to work fine here. I just had to set NLS_LANG to .AL32UTF8 in default.env file