#Pyth, 19 bytes
Pyth, 19 bytes
esDm@LQdtf!q#1.+TyU
Try it online here, or verify all the test cases at once here.
esDm@LQdtf!q#1.+TyUQ Implicit: Q=eval(input())
Trailing Q inferred
UQ Generate range [0-len(Q))
y Take the powerset of the above
f Filter keep elements of the above, as T, using:
.+T Take differences of consecutive elements of T
q#1 Keep those differences equal to 1
! Logical NOT - empty lists evaluate to true, populated ones to false
Result of the filter is those sets without consecutive numbers
t Drop the first element (empty set)
m Map the remaining sets, as d, using:
L d For each element of d...
@ Q ... get the element in Q with that index
sD Order the sets by their sum
e Take the last element, implicit print