Wait. To be clear, you were using threads, but now are only using the main thread and the issue still persists? If you weren't using threads before, what was the @synchronized block for?
Otherwise, I don't know of any bugs that would cause objects to not collide. Forgetting to return a value from a begin or preSolve callback is a good way to have random collision issues, but you said you disabled your handlers... Hrm. Other than checking to make sure the other collision filtering parameters (layers, groups) aren't ignoring the collision, I don't really know what to recommend.
Can't sleep... Chipmunks will eat me...
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
I probably found it. The group value of my objects was set by a singleton utility class that didn't behave as expected. I removed all groups and I can´t replicate the error any more. It seems to work now.
PS. Looking forward to you multi screen auto geometry project.