Check for existing workflow associated to the transaction (i.e. Bills) and see if Execute as Admin is marked.
If you enable Execute as Admin for a workflow, this option allows workflows to execute with privileges that the logged-in user might not have. Instead, the actual user's permissions determine whether the workflow can complete updates to Posting Period field values.
This exception is intended to prevent users who do not have the Override Period Restrictions permission from executing workflows that post transactions in locked periods.
Keep in mind that other updates made by a workflow with Execute as Admin enabled, such as changes to the Approval Status field, may still lead to changes in Posting Period field values.