It is one that bites everyone now and then and it results because
5 =+/I. v
actually has I. acting on v, then the result is acted on by +/, then that result is tested against 5 using the = comparison. So when we define
indexsumtest =: =+/I.
we get
5 indexsumtest v
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
because indexsumtest has been defined as a tacit verb which processes its arguments as a fork as MPelletier suggested. In other words you actually don't get =+/I. in place of indexsumtest you get (=+/I.) which is a 3 verb fork where the first and third verbs take both arguments and the result of each is sent to the +/ in the centre.
MPelletier also suggests that a tacit form that does what you wanted is
[ = [: +/ [: I. ]
which will work and is actually created by J if you change your definition to 13
indexsumtest =: 13 : 'x =+/I. y'
indexsumtest
[ = [: +/ [: I. ]
Yep, that is right J will actually do most tacit conversions for you if you use the 13 : conjunction to define. Pretty cool, eh? Only problem is that it does not use hooks in this automatic generation, which can simplify the code. A hook is a two verb combination that has the right verb work on the right argument and the result is used as the right argument to the left verb which uses the left argument in the dyadic case (or the original right argument in the monadic case).
When x and y are left and right arguments and u and v are the first and second verbs then
x ( u v) y
becomes x u (v y)
or in monadic case
( u v) y
becomes y u (v y)
If you are still with me (good for you!) this means that we can use a hook to simplify the tacit if we set u to = and v to +/@I. (the @ is a conjunction that joins +/ and I. and makes them work as one verb). So finally
indexsumtacit =: = +/@I.
5 indexsumtacit v
1
As mindbending as J is when you start, it is really neat when you understand the rules that it plays by and then start to get them to do your bidding. Hope this helps.