Like I said, there was no way to do this using Bluetooth RSSI, as my
devices only ever reported extreme values and there was no resolution
with which to calculate localisation except for "in range" and "not in
range" !!
I ended up using the WiFi RSSI value and using a footprint matching
algorithm, whereby data was recorded as a footprint model of what the
signals looked like when a device was in a particular area (I used a
grid of one metre squares) and then live data was matched to the
model.
It worked perfectly for my needs and appeared to be very accurate (I
think I recorded something like 85% accuracy).
My project was done in C# using OpenNETCF.