Hello Sridhar,
It doesn't work because of the field ID post_author. In WordPress, post_author is not a normal custom field. It is a core column in the wp_posts table and doesn't work when you enable "Author" feature for the CPT.
If you want to use the custom field and save the value to the database, table wp_postmeta, there are 2 ways:
1. Use a different field ID, like post_meta_author
2. Go to Meta Box > Post types > Edit CPT > Supports tab > Disable option "Author".
A similar issue will happen if you use the following field IDs:
post_author
post_title
post_status
post_name
post_date