Location on an iPhone requires a data plan. This is because your iPhone’s GPS downloads an “almanac” file to help locate itself. This can’t happen over Wi-Fi, as these files are not on the internet, but on the internal network of your carrier.
As for your iPhone not using the Wi-Fi to locate itself, that’s probably because the network is not yet in Apple’s database.
There’s must be something broken if the iPhone is not showing up as online. This mayThere can be because of atwo possibilities. Either Apple has configured Find My iPhone only to use GPS or some tweak or a bad jailbreak is not allowing the findmyiphoned (process responsible for responding to Find My iPhone requests) to work or launch properly. As there can many things that can cause this problem, I would suggest first booting up in safe mode (SBSettings can do that) and seeing if the problem is resolved. If it is, that means a tweak caused a problem. If it isn’t, that means you did a bad jailbreak. In the latter case, a restore is the only option.