First of all as you are trying to Switch from PSW to TIER2 your HR must assign a Unrestricted COS. If they make a mistake here their license will be revoked.
1. What's the confusion here? If you are a programmer then you are a programmer. Unless you are a game programmer it will be a different COS I believe. See if the programmer SOC description matches with your actual job description. If yes then you are fine. I don't see a problem here?
2. When is your PSW expires and when you are planning to switch to Tier2?
As with regards to the expiry see below
From 6th April 2011, all Tier 2 General and Tier 2 ICT allocations are subject to a fixed allocation period that runs from 6th April to 5th April the following year. If you are licensed in Tier 2 General and/or Tier 2 ICT and this allocation is due to expire, you can request an allocation of unrestricted CoS up to 3 months in advance of your allocation expiry date but your new allocation will only be available from the 6th April. If you need additional unrestricted CoS before the end of your Tier 2 General and /or ICT allocation year, you must use the ?Request allocation increase? function on your SMS account to request them.
So your employer must request the annual allocation if needed. As your employer has a limit of 0 this means he still hasn't requested a COS. If your PSW doesn't expire before April 2012 then your employer can request an allocation of 1 COS. On 5th April 2012 You will receive the allocation. Then it can be assigned to you.
If your visa expires before 5th April 2012 Your employer must request a
Request allocation increase (Via SMS -> View and edit sponsor profile -> Request allocation increase -> Add request) and keep in mind the time it takes for this additional allocation varies from 24hrs to 4 weeks (From historic data posted here)
Any other questions fire away