Perhaps this is an issue with older versions as well, I'm not sure. The TMX function() getTileGIDAt() fails to return anything other than 0.
I have found this issue raised only in recent threads on Google, i.e. 2014+, so I have to assume it's an issue with v3.x. No one had found an answer as far as I could tell. I was following the RayWenderlich tutorial (replacing deprecated items with the appropriate replacements), and I ran into this issue when trying to run collision with TMX layers. No matter whether I had one layer or multiple, whether the whole layer was filled in or not, I kept getting the same problem.
I stepped into the getTileGIDAt() function, and it appeared that, no matter what Point/Vec2 I provided, the idx[point] was set to 0. What the hell??
Basically, I've been working around the issue by using Objects, which seem to work fine. I can see the obvious utility of layers though, and it's frustrating that this functionality is broken (at least, it seems). Am I missing something? Are you?