"Jag är i stan" - beskriver att jag befinner mig där geografiskt, en lokalisering.
"Jag är på stan" - uttrycker en större närhet till platsen, interagerar, grejar med något.
"Jag ligger i soffan" - är ett med soffan

"Jag ligger på soffan" - ser mig själv mer utifrån, placerad där.
Verkar inte följa någon solklar regel för min del eftersom beskrivningarna motsäger varandra.
Edit: Använder alla varianterna.