Check that the pragma allocating the section also has the proper __GPAGE_SEG qualifier as the compiler has to know how to access the constants. Then make sure the #pragma CONST_SEG __GPAGE_SEG XXX_SEC is also present in front of the declarations (if any), not just in front of the definition. In header files, restore the previous section with a surrounding #pragma push/#pragma pop.
The function taking the address needs a __far pointer, only using a __near pointer wont take all the 3 address bytes.
Finally I would not use the default ROM_VAR as name for a custom allocated section. Predefined section names have also predefined meaning, I'm not sure if ROM_VAR in particular is specially handled anywhere, but it could be.
If this does not help, please show how you declare and use the constants, how your prm looks like, what you see and what you expect to see.
As always, are there any compiler warnings?
Daniel