I have been a Tenant & a Landlord in HK over the last 17 years & have experienced some unusual situations and this appears to meet the criteria as unusual, and I think the fact that the Tenant is a foreigner and so is the Landlady just make things worse.
From my experience I would simply not pay the rent for December 2015 or January 2016 (I anticipate that this is equivalent to your security deposit under the lease agreement between the 2 parties. I see a lot of people mentioning that not to pay the last 2 months is a breach of contract, and technically it is, but you have to consider what sort of Landlady will pursue this through the courts because there is the expense of the whole process, the risk that her outrageous behaviour will be opened up in court and that if you refused to move out it would cost the Landlady a chunk of money to take you to court for not providing vacant possession plus the lack of a new tenant would mean she would be losing income.
I don't know much about dealing with Mainlanders per se but lots of HK Landlords will try to frighten Tenants with threats of court action and the like but the reality is most of the time this is simply "sabre rattling" to try to get more out of the deal than they should. So don't pay, hold firm and keep possession until the final day of the lease. Tell the Landlady and the Agent that if they want anything else then you will see them in court. Upon the last day of the lease formally write and invite the Landlady and Agent to a joint inspection at a fixed time and if they do not show up take pictures yourself and return a copy with all of the keys to the Agents office.
As a landlord if someone provided vacant possession on time and returned the apartment in a similar condition save for general wear and tear there is not much I can do - just a missed opportunity to relieve some foreigner of some more money because he / she was silly enough to listen to me. At the end of the lease I have received the full rental amount.
It will be interesting to see what happens next!