There are at least 3 different ways I could see for an answer to the first one, where one factor is what trade-offs do you prefer:
1) Small company where you'd handle various roles. This is where while you may have a development role title, there would be a chunk of your job that is handling things from an IT perspective like setting up servers and networks as you would be one of the few IT people in the company.
2) Transition to test and then development. Taking your desktop support experience and interest in fixing problems, migrate to something a bit closer to code to eventually transition into one of the developers. This may not be easy to find but is likely to be the best in terms of salary initially.
3) Start over again from scratch. If you don't want to use your previous experiences at all, this is the route to take. Granted you'd be going for junior positions and possibly be undervalued, it is what you may want to do if you want to be a developer and nothing but a developer.
As you can see, this can be viewed as a few different transitions, and thus not necessarily that big a cultural divide, at least to my mind.