Ray not hitting certain colliders, can't figure it out, help?

So I’m shooting a ray from the camera out into the scene using ScreenPointToRay, the code is below.

The TapPick function is called OnTap using the FingerGestures plugin, it’s being called everytime as expected so the tap gesture is not the problem.

For debug purposes I set the layermask to everything, and the ray is cast and returns anything I click on, I’ve tested by having the ray return the hit object’s name, but for some reason there’s a few capsule colliders on my player that just aren’t being seen by the ray at all.

What’s even weirder is the ray does successfully hit only the top portion of one capsule collider, so one part of the collider returns a hit but not the rest of it, I’ve never seen anything like it. And it’s not a distance issue, the ray does detect the ground and objects behind these few unseen colliders, there’s no collider between the camera and object occluding it either. I’m completely stumped.

function TapPick (tapScreenPos : Vector2) : GameObject
{
    tapRay = Camera.main.ScreenPointToRay(tapScreenPos);
    if (Physics.Raycast(tapRay, tapHit, 1000, TapLayerMask))
	{
		Debug.DrawLine (Cam.transform.position, tapHit.point, Color.cyan);
        return tapHit.collider.gameObject;
	}

    return null;
}

I found a workaround, I removed all the colliders on the player and replaced them with a big player sized collider to act as a button. When the button is a child of the player clicks below halfway down on the collider don’t register, god knows why, so I made the button a child of the camera and everything works as expected, I also set it to trigger so I can add colliders to the player later for actual collision in game, not for input detection. So my problem is basically solved